抓取动态网页( 烯牛数据加密不好暨自动化测试中无头谷歌浏览器设置代理)
优采云 发布时间: 2021-10-09 16:40抓取动态网页(
烯牛数据加密不好暨自动化测试中无头谷歌浏览器设置代理)
Python爬虫:Selenium和Chrome无头浏览器用牛数据爬取动态网页
彭诗雨 发表于 2021/08/13 23:49:58 2021/08/13
【摘要】牛的数据地址:打开页面,可以正常看到内容,查看源码发现页面没有出现我们需要的内容,说明这是异步加载的内容。数据抓取方式一:使用requests或者scrapy,无法获取页面数据,api数据加密不好。处理方法二:使用PhantomJS,经过多次尝试,仍然无法得到...
数据地址:
打开页面,可以正常看到内容,查看源码发现页面没有显示我们需要的内容,说明这是异步加载的内容。
数据抓取
方式一:
使用requests或者scrapy,无法获取页面数据,api数据加密不好处理
方式二:
使用PhantomJS,经过多次尝试,仍然无法获取数据,即使我等待了很长时间。
方式3:
使用splash,方法可以参考:Python爬虫:splash安装及简单示例
方式四:
使用 Chrome,headless 或 headless,这个例子使用了一个 headless 浏览器
代码
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一些时间去渲染,否则渲染的数据将不可用
参考
Chrome -selenium webdriver 的无头设置代理和自动化测试中的无头谷歌浏览器设置代理