request.get()没有得到整个dom

时间:2016-01-15 12:28:06

标签: python beautifulsoup python-requests

我正在抓取一个网站,但有些产品不会出现在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

NB。 我不确定这是否是产品没有出现在product_list中的原因,但这是我给出的解释,因为当我用firefox检查DOM时,如果我不向下滚动,我只看到24 <div class="product-block ...">,而不是91。

1 个答案:

答案 0 :(得分:2)

解决方案非常适合页面,但它应该可行。在检查加载过程时,事实证明,只要向下滚动,浏览器就会向https://www.project6ny.com/collections/all-childrens-accessories?page=2执行AJAX请求。如果您访问该URL,您将实际看到该目录的第二页。

由于您可以确定最大页数(它在元素中,倒数第二个元素),您可以应用the solution here来删除分页目录。