Python爬虫:selenium和Chrome无头浏览器抓取烯牛数据动态网页
【摘要】 烯牛数据地址: http://www.xiniudata.com/project/event/lib/invest
打开页面,能正常看到内容,查看源代码发现页面并没有出现我们需要的内容,说明这是异步加载的内容。
数据抓取
方式1: 采用requests或scrapy,拿不到页面数据,api数据加密不好处理
方式2: 采用PhantomJS,尝试多次还是拿不...
烯牛数据地址:
http://www.xiniudata.com/project/event/lib/invest
打开页面,能正常看到内容,查看源代码发现页面并没有出现我们需要的内容,说明这是异步加载的内容。
数据抓取
方式1:
采用requests或scrapy,拿不到页面数据,api数据加密不好处理
方式2:
采用PhantomJS,尝试多次还是拿不到数据,就算等待很长时间也不行
方式3:
采用splash,方法可参考:Python爬虫:splash的安装与简单示例
方式4:
采用Chrome,有头或无头都可以,本例采用无头浏览器
代码实现
from selenium import webdriver
# 创建chrome参数对象
options = webdriver.ChromeOptions()
# 把chrome设置成无界面模式,不论windows还是linux都可以,自动适配对应参数
options.add_argument('headless')
# 创建chrome无界面对象
driver = webdriver.Chrome(chrome_options=options)
# 访问烯牛数据
url = "http://www.xiniudata.com/project/event/lib/invest"
driver.get(url)
# 等待,让js有时间渲染
driver.implicitly_wait(3)
#打印内容
# print(driver.page_source)
# 解析内容
print(driver.find_element_by_css_selector(".table-body").text)
# 关闭窗口和浏览器
driver.close()
driver.quit()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
有js渲染的页面,关键点就是然浏览器等待一会再返回内容,给js一点时间渲染,不然拿不到渲染后的数据
参考
selenium webdriver 之 Chrome -headless set proxy 暨 自动化测试中无头谷歌浏览器设置代理
文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。
原文链接:pengshiyu.blog.csdn.net/article/details/81700407
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)