Python爬虫:selenium和Chrome无头浏览器抓取烯牛数据动态网页

举报
彭世瑜 发表于 2021/08/13 23:49:58 2021/08/13
【摘要】 烯牛数据地址: 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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。