【发布时间】:2016-04-21 01:09:52
【问题描述】:
我正在抓取一个网站,但除非您向下滚动,否则某些产品不会出现在 DOM 中。例如看看this page。
当我将 DOM 存储在一个变量中并尝试获取与产品对应的 div 时:
req = requests.get(*url*,verify=False)
soup = BeautifulSoup(req.text,'html.parser')
product_list = soup.findAll("div",class_="product-block")
product_list 仅包含 24 个元素(如果您完全向下滚动,则该页面中的产品数量不是 91 个)。
如何将完整的 DOM 存储在 req 中?
注意。
我不确定这是否是产品未出现在 product_list 中的原因,但这是我给出的解释,因为当我用 firefox 检查 DOM 时,如果我不向下滚动,我只会看到 24 <div class="product-block ..."> ,而不是 91。
【问题讨论】:
-
requests库在JavaScript关闭的情况下加载 HTML 内容。您需要使用浏览器自动化工具,例如selenium。 -
...或者你需要自己做 xhr 请求
标签: python beautifulsoup python-requests