Python 刮网靓汤

Python 刮网靓汤,python,python-3.x,beautifulsoup,Python,Python 3.x,Beautifulsoup,我正在尝试的是从中获取配料部分 所以我所做的是 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",{"

我正在尝试的是从中获取配料部分

所以我所做的是

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=“Components”

坏消息,看起来这些元素是通过JS生成的。如果您“查看”了该页面的源代码,那么元素就不存在了,这就是请求获取的html

我会使用类似于selenium的工具来自动化浏览器以获得完全呈现的html,然后您可以使用beautifulsoup来解析成分


我个人觉得,当网站使用JS生成大量内容而不是使页面更具交互性等时,这很烦人。但你打算怎么做…

ya我知道selenium,但没有其他方法可以使用请求废弃网站吗?如重复链接中问题的答案,您可以尝试模拟JS在请求中执行的请求。但这并不总是可能的,因为JS并不总是发出请求。除此之外,据我所知没有。