Fiddler高级用法—FiddlerScript抓取app网页json数据并保存
目录
1|0FiddlerScript
1|1环境搭建
1|2简单Fiddler Script
1|3show you mine code
2|0写在最后:
2|1环境问题:
2|2Fiddler Script脚本问题:
1|0FiddlerScript
1|1环境搭建
官网下载:
https://www.telerik.com/fiddler
安装步骤参照下面这篇文章(安装证书抓取https皆有详细步骤):
https://www.cnblogs.com/liulinghua90/p/9109282.html
1|2简单FiddlerScript
如下展示了Fiddler在客户端与服务端进行交互时的位置,在客户端发起http请求及接收服务端返回的数据时都可截取交互的数据。那么在Fiddler中我们就可以抓取所有http请求的数据,甚至可以更改参数再请求到服务端!!
Fiddler的普通抓包分析将不再赘述,这里主要介绍Fiddler高级用法也就是通过修改Fiddler Script脚本文件来实现请求数据及返回数据的修改。
Fiddler Script在Rules->Customize Rules:
脚本中的主要方法说明:
static function OnBoot fiddler 启动时调用
static function OnShutdown fiddler关闭时调用
static function OnAttach fiddler注册成系统代理时调用
static function OnDetach fiddler 取消注册系统代理时调用
static function Main 在每次fiddler启动时和编译CustomRules.js 脚本时调用。
static function OnBeforeRequest(oSession: Session) 在这个方法中修改Request的内容
static function OnBeforeResponse(oSession: Session) 在这个方法中修改Response的内容(对应爬虫来说该方法最常用)
1|3show you mine code
如下一段代码实现提取http请求返回的json数据保存至本地文件 并通过post请求发送至自己后台。
主要包含三大块:
- 解析response数据构造自身需要的json;
- 数据写入本地文件;
- 数据通过POST请求发送至后台保存mongodb
static function OnBeforeResponse(oSession: Session) {if (m_Hide304s && oSession.responseCode == 304) {oSession["ui-hide"] = "true";}// if (oSession.fullUrl.Contains("baidu.com")){if (1){oSession.utilDecodeResponse();//消除保存的请求可能存在乱码的情况var jsonString = oSession.GetResponseBodyAsString();var responseJSON = Fiddler.WebFormats.JSON.JsonDecode(jsonString);if((responseJSON.JSONObject=='System.Collections.ArrayList' || responseJSON.JSONObject=='System.Collections.Hashtable')&&jsonString!='[]'&&jsonString!='{}'){// 判断是否是json数据 然后保存var str='{}';//构造自己的JSON http请求的信息及返回的结果var data = Fiddler.WebFormats.JSON.JsonDecode(str);data.JSONObject["request_method"] = oSession.RequestMethod;var requestString = oSession.GetRequestBodyAsString();data.JSONObject["request_body"]= requestString;data.JSONObject["response_data"] = responseJSON.JSONObject;data.JSONObject["url"] = oSession.fullUrl;data.JSONObject["response_code"] = oSession.responseCode;jsonString = Fiddler.WebFormats.JSON.JsonEncode(data.JSONObject)// 保存文件到本地var fso;var file;fso = new ActiveXObject("Scripting.FileSystemObject");file = fso.OpenTextFile("E:\\spider_img\\Sessions.dat",8 ,true, true);file.writeLine(jsonString);file.writeLine("\n");file.close();// 数据通过post请求发送自己的后台服务保存 FiddlerObject.log('2222222222222222'+jsonString); // methodsvar method = "POST";var myUrl = 'http://localhost:8000/fiddler'var url = myUrl+'?data='+Utilities.UrlEncode(jsonString);var protocol = "HTTP/1.1";var raw="";var selected: Session = oSession;raw += method + " " + url + " " + protocol + "\r\n";raw +="Host:localhost:8000\r\n";raw +="Connection: keep-alive\r\n";raw +="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\n";raw +="User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36\r\n";raw +="Accept-Encoding: gzip,deflate,sdch\r\n";raw +="Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.4\r\n";raw +="Content-Type: application/json\r\n";var body= "jsondata=''";raw += "\r\n" + body;FiddlerObject.utilIssueRequest(raw);}}}
测试抓取某金融app银行类产品的存款利率
写入文件的json结果:
2|0写在最后:
2|1环境问题:
1.pc网页抓取暂无问题,参照上面的安装链接配置没有什么问题很容易成功。
2.app抓取问题:模拟器抓取会有很多app无法正常运行,可使用真机抓取。
3.https 403问题:手机安装证书后浏览器https抓取正常,但是部分app无法获取https链接,热心网友解决方法是使用JustTrustMe关闭ssl认证即可解决。但是我的小米6没有root成功无法安装 后来直接拿出老手机米4 android 6.x的系统便可直接抓取(老系统对爬虫比较友好),最后再root装个按键精灵就可以愉快的玩耍了。
2|2Fiddler Script脚本问题:
JScript之前并没有了解过,写完上面的代码后也不怎么了解,反正代码里面有其他的代码 依葫芦画瓢嘛 而且感觉语法和JavaScript有很多相似的。
还有就是在类视图里去找相应的方法,虽然里面的解释不够详细 但是根据名称简单介绍就大概知道用途了(官网并未找到详细的说明文档,有了解的老兄可以留言交流)
Fiddler高级用法—FiddlerScript抓取app网页json数据并保存相关推荐
- python3 pycharm 抓取app 上的数据
App中的数据可以用网络爬虫抓取么 答案是完全肯定的:凡是可以看到的APP数据都可以抓取. 下面我就介绍下自己的学习经验和一些方法吧 本篇适合有过web爬虫基础的程序猿看 没有的的话学的可能会吃力 ...
- 以小饭桌网站为例介绍抓取动态网页的数据【python爬虫入门进阶】(12)
您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦.
- python爬虫抓取动态网页数据_python网络爬虫抓取ajax动态网页数据:以抓取KFC门店地址为例...
一,尝试用BeautifulSoup抓取 先打开KFC网站门店列表页面:http://www.kfc.com.cn/kfccda/storelist/index.aspx 可以看到门店列表如下图: 打 ...
- Python3.x+Fiddler抓取APP数据
随着移动互联网的市场份额逐步扩大,手机APP已经占据我们的生活,以往的数据分析都借助于爬虫爬取网页数据进行分析,但是新兴的产品有的只有APP,并没有网页端这对于想要提取数据的我们就遇到了些问题,本章以 ...
- fiddler设置中文版本_Python3.x+Fiddler 抓取 APP 数据
随着移动互联网的市场份额逐步扩大,手机 APP 已经占据我们的生活,以往的数据分析都借助于爬虫爬取网页数据进行分析,但是新兴的产品有的只有 APP,并没有网页端这对于想要提取数据的我们就遇到了些问题, ...
- Python爬虫采集抓取:Python3.x+Fiddler 采集抓取 APP 数据
随着移动互联网的市场份额逐步扩大,手机 APP 已经占据我们的生活,以往的数据分析都借助于爬虫采集爬取网页数据进行分析,但是新兴的产品有的只有 APP,并没有网页端这对于想要提取数据的我们就遇到了些问 ...
- Fiddler抓取APP网络请求
安装Fiddler 一路next就行了. 配置Fiddler 1.允许解析https 2.允许抓取远程流量 3.配置只抓取app流量 4.关闭pc端防火墙或开通相关规则 Android端配置 1.配置 ...
- 抓取app数据教程–fiddler抓包数据截取-薄荷app为例
转载请注明出处:抓取app数据教程–fiddler抓包数据截取-薄荷app为例 准备工具 1.手机(安装有想要抓取数据app的iphone或者android) 2.fiddler抓包工具 安装fidd ...
- 利用Fiddler抓取APP数据
利用Fiddler抓取APP数据 简杨君 关注 2016.11.03 18:51* 字数 368 阅读 762评论 0喜欢 2 软件:Fiddler 系统:Windows10 手机:MX4 PRO F ...
- python获取app信息的库_Python学习教程:另辟蹊径,appium抓取app应用数据了解一下...
作为爬虫工程师,没有价格不知道selenium的. 什么是selenium? Selenium原本是一个用于Web应用程序自动化测试工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一 ...
最新文章
- 习惯了收听虾米酷狗网易云音乐的你,好歹知道一下音乐推荐到底是咋回事吧
- android平板开发板,利用开源开发板自制的平板电脑 | 雷锋网
- HTML5 视频转换软件 Freemake Video Converter
- flutter中list相关操作汇总(有这一篇就够啦)
- linux su和sudo命令的区别
- 时隔多日,旧域名重用,niceyoo博客上线
- 猎豹浏览器禁止跟踪怎么开启 禁止跟踪功能开启方法
- Community Enterprise Operating System ISO 全镜像下载
- centos 修改时区及NTP时间同步
- vi编辑器的使用 快捷键
- c语言转义字符o用法,gogo体育下载官网-gogo体育下载官网
- MySQL窗口函数OVER()
- 计算机硬盘会计分录,电脑加装固态硬盘如何做分录
- 山经·南山经:堂庭山
- 数字电路5(基本CMOS逻辑门电路)
- ubuntu 命令行关机
- 【3】Ubuntu18.04下载与安装,以及中文输入法的安装
- 软件测试之α测试和Beta测试
- MATLAB产生随机阶跃信号
- KVM 虚拟机 配置 NAT 连接方式上网