抓取动态网页( 烯牛数据加密不好暨自动化测试中无头谷歌浏览器设置代理)

优采云 发布时间: 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 的无头设置代理和自动化测试中的无头谷歌浏览器设置代理

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线