Python selenium Browsermob-Proxy获取网页加密请求参数的方法及过程
一、问题
爬虫在获取页面数据时可能会遇到许多页面异步加载、js加密、动态Cookie等问题,我们在做爬虫开发的时候经常用到浏览器的开发者工具,分析网页元素,查看资源加载(Network)等。Selenium + Webdriver 虽然能够定位DOM元素、操作页面、获取网页等。但是 Selenium 终归只能处理“结果”,它无法得知浏览器请求的数据接口信息。如果我们能像浏览器Network那样获取到所有接口的请求和返回信息,那么问题不都解决了。
现在我们可以使用selenium + Browsermob-Proxy通过proxy访问网络,再收集proxy端的请求和返回内容,从而获取到数据。
二、Browsermob-Proxy
1.Browsermob-Proxy是一个开源的Java编写的基于LittleProxy的代理服务。Browsermob-Proxy的具体流程有点类似与Flidder或Charles。即开启一个端口并作为一个标准代理存在,当HTTP客户端(浏览器等)设置了这个代理,则可以抓取所有的请求细节并获取返回内容。
2.插件的安装,直接到项目的github上下载打好的压缩包即可:https://github.com/lightbody/browsermob-proxy/releases ,支持Linux和Windows。
安装对应的python包(ptp install browsermob-proxy),下载好Browsermob-Proxy后将它放在指定的目录,如我是放在:D:\软件\browsermob-proxy-2.1.4这个路径下。
三、插件在代码的引用与使用示例
1.引用
2.启动代理
3.配置Proxy启动WebDriver
4.模拟人工登录跳过淘宝滑块验证
5.通过链接去获取指定页面下的加密参数,因为可能有些页面没有你想要的加密参数,所以这里要指定存在加密参数的链接
6.这样可以获取你想要的url链接的所有响应,在响应中解析出我们获取数据的加密参数以及cookie,运行结果如图:
最后将获取到的加密参数与cookie传入到请求参数中。
四、总结:
在数据采集过程中,在遇到一些加密参数不知道如何获取时,但通过页面请求头可以找到这些参数,这时候就可以使用这种方法来获取加密参数,如果你js很厉害有些加密参数可以知道如何逆向解析出来,那就不需要这种方法了。
Python selenium Browsermob-Proxy获取网页加密请求参数的方法及过程相关推荐
- Python爬虫基础-如何获取网页源代码
Python爬虫基础-如何获取网页源代码 网络爬虫(Web Crawler),又称网页蜘蛛(Web Spider),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.爬虫程序根据一组特定的规则 ...
- python+selenium实现自动刷新网页
Selenium是一个用于Web应用程序测试的工具,本文介绍利用python+selenium实现自动刷新网页. 一.安装 selenium pip install selenium 二.下载并导入浏 ...
- pythonrequests发送数据_在python中使用requests 模拟浏览器发送请求数据的方法
在python中使用requests 模拟浏览器发送请求数据的方法 如下所示: import requests url='http://####' proxy={'http':'http://#### ...
- python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法
python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法 目录
- nodejs获取get/post请求参数
一.原生node中怎么获取get/post请求参数 处理get请求参数,使用node自带的核心模块----url模块 url.parse();方法将一个完整的URL地址,分为很多部分,常用的有:hos ...
- 使用jquery获取url及url参数的方法
[开发笔记]-使用jquery获取url及url参数的方法 使用jquery获取url以及使用jquery获取url参数是我们经常要用到的操作 1.jquery获取url很简单,代码如下: windo ...
- Selenium+Browsermob-Proxy 爬虫-获取浏览器Network请求和响应(新示例)
之前有写过一篇文章,使用Selenium+Browsermob-Proxy 获取浏览器Network请求和响应(地址:https://blog.csdn.net/qq_32502511/article ...
- python selenium 保存网页_使用python / selenium保存完整的网页(包括CSS,图像) - python...
我正在使用Python / Selenium将遗传序列提交到在线数据库,并希望保存返回的完整页面.以下是使我获得所需结果的代码: from selenium import webdriver URL ...
- python使用requests+BeautifulSoup获取网页元素的内容
1.导入第三方库request和beautifulsoup4 2.之后 import requests from bs4 import BeautifulSoup 3.使用requests中的get/ ...
最新文章
- 为啥我的页面模板的from提交不了数据_小程序,组件与模板对比,及其简单使用
- linux 设置代理 安装jdk mysql tomcat redis hadoop
- CTFshow 命令执行 web50
- php奇数乘法表,PHP九九乘法表
- before和after怎么区分_如何区分before和after~有时候觉得两者可以通用
- 你的灯亮着吗?阅读笔记之一
- 牛客网_PAT乙级_1026跟奥巴马一起编程(15)
- 配置ip yum 单用户 救援 运行级别
- 零基础入门深度学习(7) - 递归神经网络
- 分子机制研究的五个层次,你的研究在哪个层次--转载
- Css 分类 属性 选择器
- vsftp不同帐号的目录和权限
- Ubuntu12.04 apt-get 安装mysql
- App自动化测试前期准备---android SDK配置
- 2_C语言中的数据类型 (一)2.1.常量和字符串常量
- 【android自定义控件】TextView详解及自定义一
- Springboot整合junit单元测试
- 【Oracle】数据清洗案例
- 9 tlds tomcat_解决Tomcat 7日志At least one JAR was scanned for TLDs...问题
- IDEA 黄色警告 found duplicated code in this file finds duplicated code
热门文章
- 【认知分享】为什么马云能成功而你不能
- STM32时钟树分析
- Exception while loading planner ‘ompl_interface/OMPLPlanner‘: According to the loaded plugin descrip
- php获取商品订单号,php根据订单号 跟踪物流
- EF从数据库更新模型时保留Model上的属性设定
- NVIDIA 驱动下载网址
- XMC系列正交编码器的测量
- 介绍下AT32的XMC异步通信的几个模式的时序(MODE1/2/A/B/C/D)
- 基于VLC实现RTSP推流视频
- 专业MES执行系统软件开发商,精诚MES系统的优势