网刮美丽的汤

时间:2018-05-04 13:38:21

标签: python python-3.x beautifulsoup

我正在尝试的是从

获取成分部分

https://www.walmart.com/ip/Nature-s-Recipe-Chicken-Wild-Salmon-Recipe-in-Broth-Dog-Food-2-75-oz/34199310

所以我做的是

import requests
from bs4 import BeautifulSoup
x=requests.get("https://www.walmart.com/ip/Nature-s-Recipe-Chicken-Wild-Salmon-Recipe-in-Broth-Dog-Food-2-75-oz/34199310")
soup=BeautifulSoup(x.content)
print(soup.find_all("p",{"class":"Ingredients"})[0])

但它的显示指数超出范围,即。没有找到任何元素,但在检查网站时元素确实存在'p class =“Ingredients”'

1 个答案:

答案 0 :(得分:1)

坏消息,看起来这些元素是通过JS生成的。如果你"查看来源"该页面中的元素不存在,这是请求获取的html。

我会使用像selenium这样的东西来自动化浏览器以获得完全渲染的html,然后你可以使用beautifulsoup来解析成分。

我个人觉得当网站使用JS生成大量内容而不是让页面更具互动性等时非常烦人。但是你要做什么......