zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

2023-09-14 09:07:14 时间

烯牛数据地址:
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()

有js渲染的页面,关键点就是然浏览器等待一会再返回内容,给js一点时间渲染,不然拿不到渲染后的数据

参考
selenium webdriver 之 Chrome -headless set proxy 暨 自动化测试中无头谷歌浏览器设置代理