我正在尝试从亚马逊的交易页面中搜索数据,但是下面的代码返回了一个空元素:<div class="" id="slot-4"> </div>。
为什么这段代码在亚马逊网站上不起作用?
from bs4 import BeautifulSoup
import requests
url = "https://www.amazon.in/gp/goldbox/all-deals/?ie=UTF8&ref_=sv_gb_1"
HEADERS = ({'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36'})
def getdata(url, HEADERS):
webContent = requests.get(url, headers=HEADERS)
htmlContent = webContent.content
soup = BeautifulSoup(htmlContent, 'html.parser')
# print(soup.prettify())
return soup
def getdeals(soup):
data= soup.find_all("div",{"id" : 'slot-4'})
print(data)
soup = getdata(url, HEADERS)
getdeals(soup)这是我的输出:
[<div class="" id="slot-4"> </div>]发布于 2022-03-30 16:22:13
<div class="" id="slot-4">元素是空的:

您可能希望以deal-card属性为目标:

您还希望验证该内容没有用JavaScript动态加载。如果是的话,您将需要使用像Selenium这样的库,而不是使用BeautifulSoup。
https://stackoverflow.com/questions/71678670
复制相似问题