beautifulsoup4 find_all 在沃尔玛杂货网站上找不到任何数据

问题描述 投票:0回答:3

我试图从链接的 url here 中抓取一些基本产品信息,但 bs4

find_all
命令找不到任何给定与产品 div 关联的类名称的数据。具体来说,我正在尝试:

url = https://www.walmart.com/grocery/browse/Cereal-&-Breakfast-Food?aisle=1255027787111_1255027787501
r = requests.get(url)
soup = BeautifulSoup(r.content, 'lxml')
product_list = soup.find_all('div', class_='productListTile')
print(product_list)

但这会打印一个空列表

[]
。在检查了 Chrome 上的网页后,我知道“productListTile”是正确的类名。知道我做错了什么吗?

python web-scraping beautifulsoup python-requests
3个回答
1
投票

您很可能需要使用 Selenium。 Beautiful Soup 请求被重定向到“验证您的身份”页面。

这是一个与此非常相似的问题,其中包含 Selenium 和 Beautiful Soup 的代码,它们协同工作来刮取沃尔玛

使用 beautiful soup 的 python 网页抓取不起作用


1
投票

网络抓取技术因网站而异。在这种情况下,您可以使用硒,这是一个不错的选择,在这里我添加了另一种方法与美丽的汤本身,这对我帮助很大。

这种情况,请检查网页,然后选择网络,请刷新页面。

然后按类型排序: 在下图中,我用红色标记了他们调用的 API,以从后端获取数据。所以你可以直接调用后端API来获取玩家的数据。

检查“标头”,您将看到 API 端点,并且在预览中,您可以看到 JSON 格式的 API 响应。

现在,如果您想获取图像,请检查来源,您将看到图像,您可以下载图像并使用 ID 绘制地图。


0
投票

提供任何 UserAgent,您将避免机器人身份验证。

© www.soinside.com 2019 - 2024. All rights reserved.