gpt4 book ai didi

python - 从分页内容中抓取数据

转载 作者:行者123 更新时间:2023-12-01 04:48:07 24 4
gpt4 key购买 nike

我有一个使用 AJAX 滚动分页的网站(在滚动时它会加载更多内容)。默认情况下,它显示 25 个项目,并且我能够抓取这些项目。

如何从分页内容中抓取数据?

我正在使用 BeautifulSoup 和 cronjob 来抓取数据。

我的代码:

r=requests.get(url)
data = r.text
soup = BeautifulSoup(data)
content=soup.find_all('section',{'class':'jrcl'})
for c in content:
try:
links=c.select('a')[1]['href']
web_link=requests.get(links)
print "web",links
except:
links=c.select('a')[0]['href']
web_link=requests.get(links)
print "web",links
content_data=web_link.text
soup_content = BeautifulSoup(content_data)
text=soup_content.find('section',{'class':'jdlc'})
vendor=VendorDetails()
vendor.company=text.select('.fn')[0].text
vendor.source=links
vendor.address=text.select('.jadlt')[0].text
try:
contact=text.select('.tel')[0]['href']
vendor.contact=contact.replace('tel:',' ')
contact2=text.select('.tel')[0]['href']
vendor.contact2=contact2.replace('tel:',' ')
except:
contact=text.select('.tel')[0]['href']
vendor.contact=contact.replace('tel:',' ')
vendor.save()

最佳答案

我使用 selenium 和 phantom js 来完成此操作。我使用 window.scrollTo 来获取整个页面,这对我有用

def handle(self, *args, **options):

driver = webdriver.PhantomJS()

driver.get("http://example.com")
time.sleep(3)

# elem = driver.find_element_by_tag_name("body")
driver.set_window_size(1024, 768)

no_of_pagedowns = 20

while no_of_pagedowns:
# elem.send_keys(Keys.PAGE_DOWN)
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(1)
no_of_pagedowns-=1

post_elems = driver.find_elements_by_class_name("jcn")
driver.save_screenshot('testing.png')
for post in post_elems:
###Operations to be done
driver.close()

关于python - 从分页内容中抓取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29006848/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com