BeautifulSoup仅识别页面中的少数元素

时间:2017-11-11 08:11:06

标签: python pandas beautifulsoup python-requests

我在网站上进行网页抓取。它只占用页面中的前20个元素。如果我们向下滚动,将加载剩余的元素。如何刮掉这些元素呢?有没有不同的方法呢?

import requests
from bs4 import BeautifulSoup

r=requests.get("https://www.century21.com/real-estate/rock-spring-ga/LCGAROCKSPRING/")
c=r.content
c

soup=BeautifulSoup(c,"html5lib")
soup

all=soup.find_all("div",{"class":"property-card-primary-info"})
len(all)

它只给20个。不是全部。如何刮掉隐藏的元素?

2 个答案:

答案 0 :(得分:1)

有两种不同的方法。

第一个: 通过检索站点后面的数据API来使用Web抓取。您需要了解滚动后为网站带来新信息的内容。 要理解这一点,请在网络区域中打开浏览器开发工具(Chrome中的F12)并观察滚动后调用的内容。

第二个: 使用Selenium打开浏览器实例并像普通浏览器一样加载页面,滚动页面并检索信息。

答案 1 :(得分:1)

使用selenium向下滚动然后你可以刮掉内容

QLabel