python获取浏览器network_Selenium爬虫-获取浏览器Network请求和响应

目录[-]

1.问题

自从发现 Selenium 这块新大陆后,许多异步加载、js加密、动态Cookie等问题都变得非常简单,大大简化了爬虫的难度。

但是有些时候使用 Selenium 仍然有一些缺陷,比如现在很多网站数据都是通过json结构的接口来交互,通过分析报文的方式直接发包可以直接拿到json数据,数据不但全而且还很好解析,这比解析html网页容易多了。另一个非常重要的问题就是,很多时候一些接口返回的关键信息是不在html网页上显示的,通过 Selenium 拿到的 page_source 便没有这些字段。

那么如何解决这些问题呢?我们在做爬虫开发的时候经常用到浏览器的开发者工具,分析网页元素,查看资源加载(Network)等。Selenium + Webdriver 虽然能够定位DOM元素、操作页面、获取网页等。但是 Selenium 终归只能处理“结果”,它无法得知浏览器请求的数据接口信息。如果我们能像浏览器Network那样获取到所有接口的请求和返回信息,那么问题不都解决了么。

而本文介绍的解决方案是:使用 webdriver 通过proxy访问网络,再收集proxy端的请求和返回内容,从而获取到数据,而这个proxy就类似于 fiddler 抓包软件。而文本介绍使用的是 Browsermob-Proxy

2.Browsermob-Proxy

Browsermob-Proxy是一个开源的Java编写的基于LittleProxy的代理服务。Browsermob-Proxy的具体流程有点类似与Flidder或Charles。即开启一个端口并作为一个标准代理存在,当HTTP客户端(浏览器等)设置了这个代理,

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值