15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > 爬虫杂谈(二)使用Selenium抓取动态网站

爬虫杂谈(二)使用Selenium抓取动态网站

时间:2023-07-27 10:30:01 | 来源:网站运营

时间:2023-07-27 10:30:01 来源:网站运营

爬虫杂谈(二)使用Selenium抓取动态网站:很多电商网站内容是动态加载的,requests无法抓取全部内容,内容是随着用户向下浏览而逐步加载的。Selenium可以抓取动态内容,提供针对浏览器的很多操作。

1、使用requests抓取

import requestsurl = 'https://www.jd.com/'r = requests.get(url).textprint(len(r))with open('jd.html','w',encoding='gbk') as f: f.write(r)抓取到108399

用chrome 打开jd.html,如下图

说明并没有抓取到全部内容

2、使用Selenium抓取

from selenium import webdriverimport timedef scroll(n,i): return "window.scrollTo(0,(document.body.scrollHeight/{0})*{1});"./ format(n,i)url = 'https://www.jd.com/'firefox = webdriver.Firefox()firefox.maximize_window()firefox.get(url)n = 10for i in range(0,n+1): s = scroll(n,i) print(s) firefox.execute_script(s) time.sleep(2)print(len(firefox.page_source))with open("jd2.html",'w',encoding="utf-8",errors='ignore') as f: f.write(firefox.page_source)
打开“jd2.html”,往下滑动,发现内容都在,就是图片没有显示,右键查看源代码,和京东网站上面的一样。

3、总结

可以明显发现Selenium比requests抓取内容的差异,当然也可以利用Ajax+requests,喜欢用哪种都可以。

firefox.page_source就和requests.get类似,可以使用bs4进行解析,当然Selenium也有自带的元素定位,各有各的优缺点。看需求了。


Selenium可以做得东西很多

关于爬虫可以看看静觅的博客Python爬虫实战八之利用Selenium抓取淘宝匿名旺旺 | 静觅

关于模拟登录Selenium+Python自动更新本站首页内容 - 本站专栏

关于元素定位 [python爬虫] Selenium常见元素定位方法和操作的学习介绍

======================================================================个人微信:zhang7350

关键词:动态,使用,爬虫

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭