- 浏览: 377043 次
- 性别:
- 来自: 四川
文章分类
- 全部博客 (247)
- 数据库以及sql (11)
- java (48)
- 爬虫学习 (20)
- java编程 (28)
- python编程以及安装和配置 (27)
- oracle数据库 (32)
- mongodb基本操作 (4)
- linux学习 (7)
- easyUI (2)
- nodeJs (8)
- python学习 (16)
- 其他 (13)
- hadoop (1)
- svn (1)
- 汉字 (1)
- windows (2)
- jsp (5)
- fiddler (1)
- ETL (1)
- teamviewer (1)
- maven (4)
- GIT (2)
- datagrip (1)
- ocr (1)
- redis (3)
- mysql (3)
- linux (1)
- 数据服务 (0)
最新评论
思路:
通过fiddler抓包工具,USB连接手机,配置端口,设置代理,抓取手机端的请求和数据,写入文本文件,需要编写手机模拟操作的自动化脚本,以便自动化采集数据
1.下载android sdk 、fiddler(抓包工具) 需要安卓手机一部,启动USB连接 ,安装手机驱动
2.安装fiddler 4.6.2.0 ,配置fiddle,配置tools-》 fiddlers options-》 Connections, 勾选allow remote computers to connect, 默认监听
端口为8888( 下图Fiddler listens on port就是端口号) , 若端口被占用可以设置成其他的, 配置好后要重新启动fiddler
设置过滤网站的方式:打开fiddler, 找到Filters选项并点击打开。
Use Filters 在这个选项上打勾,打开后我们可以看到下面的Host模式, 我们选择Show the following Hosts。 表示我们只在Fiddler上显示以下
域名的数据请求。然后我们再Hosts文本区域, 输入我们需要显示的域名, 如www.baidu.com或者是192.168.0.171等。 用分号分
割多个域名。 填好我们的域名后, 我们点击Actions选项并选择Run Filterset Now.现在就已经设置好了, 进行手机调试即可在手机上配置网络代理, 通过手机的设置功能-》 WLAN功能-》 具体的wifi名称的高级设置-》 代理-》 选择手动, 设置成自己电脑的
ip, 端口为8888, 手机和电脑连接同一个网络, 打开手机浏览器, 输入http://ip:端口号,(自己的ip和port),点击第二个安装证书
3、 打开fiddler, 工具栏选择Rules-> Customize Rules, 此时fiddler会创建Customize Rules.js
打开Customize Rules.js, 我们就可以在此编写自定义规则了(把手机访问的数据写入txt)如果不能生成txt文件,请用管理员身份打开fiddler
需要修改下面两处地方
在static function OnBeforeRequest(oSession: Session) { 方法中的最下面增加下面的代码
// add by dijian 2017/2/13 start
if (oSession.host.toLowerCase()=="wmapi.meituan.com")
{
var fso;
var file;
fso = new ActiveXObject("Scripting.FileSystemObject");
file = fso.OpenTextFile("c:\\Sessions.txt", 8, true, true);
file.writeLine("Request url: " + oSession.url);
//file.writeLine("Request header:" + "\n" + oSession.oRequest.headers);
//file.writeLine("Request body: " + oSession.GetRequestBodyAsString());
file.writeLine("\n");
file.close();
}//
add by dijian 2017/2/13 end
在static function OnPeekAtResponseHeaders(oSession: Session) {方法中的 static function OnBeforeResponse(oSession: Session) 方法最下面增加下面的代码
// add by dijian 2017/2/13 start
if (oSession.host.toLowerCase()=="wmapi.meituan.com")
{
oSession.utilDecodeResponse();
var fso;
var file;
fso = new ActiveXObject("Scripting.FileSystemObject");
file = fso.OpenTextFile("c:\\Sessions.txt",8 ,true, true); file.writeLine("Response code: " + oSession.responseCode);
file.writeLine("Response body: " + oSession.GetResponseBodyAsString());
file.writeLine("\n");
file.close();
}//
add by dijian 2017/2/13 end
打开c盘sessions.txt文件看一下具体的日志信息
4.monkeyrunner来实现脚本的录制和回放
在CMD下进入android的sdk下的tools目 录下, 进行下面的操作
录制: 1 、 在cmd下输入monkeyrunner recorder.py,
将打开下面的窗口
该窗口的功能:
1 、 可以自 动显示手机当前的界面
2、 自 动刷新手机的最新状态
3、 点击手机界面即可对手机进行操作, 同时会反应到真机, 而且会在右侧插入操作脚本
4:、 wait: 用来插入下一次操作的时间间隔, 点击后即可设置时间, 单位是秒
Press a Button: 用来确定需要点击的按钮, 包括menu、 home、 search, 以及对按钮的press、 down、 up属性
Type Something: 用来输入内容到输入框
Fling: 用来进行拖动操作, 可以向上、 下、 左、 右, 以及操作的范围
Export Actions: 用来导出脚本
Refresh Display: 用来刷新手机界面, 估计只有在断开手机后, 重新连接时才会用到
录制的脚本如下
[python] view plain copy
1. TOUCH| {' x' : 187, ' y' : 356, ' type' : ' downAndUp' , }
2. PRESS| {' name' : ' MENU' , ' type' : ' downAndUp' , }
3. WAIT| {' seconds' : 5. 0, }
4. DRAG| {' start' : (192, 128) , ' end' : (192, 640) , ' duration' : 1. 0, ' steps' : 10, }
回放: 使用命令monkeyrunner recorder_playback.py record_test.py
最后一个为录制的文件, 这里需要使用绝对路径
fiddler :fiddlerScript修改
static function OnBeforeResponse(oSession: Session) {
if (m_Hide304s && oSession.responseCode == 304) {
oSession["ui-hide"] = "true";
}
// add by dijian 2017/2/13 start
if (oSession.host.toLowerCase()=="wmapi.meituan.com"||oSession.host.toLowerCase()=="client.waimai.baidu.com")
{
oSession.utilDecodeResponse();
var fso;
var file;
fso = new ActiveXObject("Scripting.FileSystemObject");
file = fso.OpenTextFile("F:\\Sessions.txt",8 ,true, true);
file.writeLine("Request header:" + "\n" + oSession.oRequest.headers);
file.writeLine("token: " + oSession.GetRequestBodyAsString());
file.writeLine("Response code: " + oSession.responseCode);
file.writeLine("Response body: " + oSession.GetResponseBodyAsString());
file.writeLine("\n");
file.close();
}
// add by dijian 2017/2/13 end
}
通过fiddler抓包工具,USB连接手机,配置端口,设置代理,抓取手机端的请求和数据,写入文本文件,需要编写手机模拟操作的自动化脚本,以便自动化采集数据
1.下载android sdk 、fiddler(抓包工具) 需要安卓手机一部,启动USB连接 ,安装手机驱动
2.安装fiddler 4.6.2.0 ,配置fiddle,配置tools-》 fiddlers options-》 Connections, 勾选allow remote computers to connect, 默认监听
端口为8888( 下图Fiddler listens on port就是端口号) , 若端口被占用可以设置成其他的, 配置好后要重新启动fiddler
设置过滤网站的方式:打开fiddler, 找到Filters选项并点击打开。
Use Filters 在这个选项上打勾,打开后我们可以看到下面的Host模式, 我们选择Show the following Hosts。 表示我们只在Fiddler上显示以下
域名的数据请求。然后我们再Hosts文本区域, 输入我们需要显示的域名, 如www.baidu.com或者是192.168.0.171等。 用分号分
割多个域名。 填好我们的域名后, 我们点击Actions选项并选择Run Filterset Now.现在就已经设置好了, 进行手机调试即可在手机上配置网络代理, 通过手机的设置功能-》 WLAN功能-》 具体的wifi名称的高级设置-》 代理-》 选择手动, 设置成自己电脑的
ip, 端口为8888, 手机和电脑连接同一个网络, 打开手机浏览器, 输入http://ip:端口号,(自己的ip和port),点击第二个安装证书
3、 打开fiddler, 工具栏选择Rules-> Customize Rules, 此时fiddler会创建Customize Rules.js
打开Customize Rules.js, 我们就可以在此编写自定义规则了(把手机访问的数据写入txt)如果不能生成txt文件,请用管理员身份打开fiddler
需要修改下面两处地方
在static function OnBeforeRequest(oSession: Session) { 方法中的最下面增加下面的代码
// add by dijian 2017/2/13 start
if (oSession.host.toLowerCase()=="wmapi.meituan.com")
{
var fso;
var file;
fso = new ActiveXObject("Scripting.FileSystemObject");
file = fso.OpenTextFile("c:\\Sessions.txt", 8, true, true);
file.writeLine("Request url: " + oSession.url);
//file.writeLine("Request header:" + "\n" + oSession.oRequest.headers);
//file.writeLine("Request body: " + oSession.GetRequestBodyAsString());
file.writeLine("\n");
file.close();
}//
add by dijian 2017/2/13 end
在static function OnPeekAtResponseHeaders(oSession: Session) {方法中的 static function OnBeforeResponse(oSession: Session) 方法最下面增加下面的代码
// add by dijian 2017/2/13 start
if (oSession.host.toLowerCase()=="wmapi.meituan.com")
{
oSession.utilDecodeResponse();
var fso;
var file;
fso = new ActiveXObject("Scripting.FileSystemObject");
file = fso.OpenTextFile("c:\\Sessions.txt",8 ,true, true); file.writeLine("Response code: " + oSession.responseCode);
file.writeLine("Response body: " + oSession.GetResponseBodyAsString());
file.writeLine("\n");
file.close();
}//
add by dijian 2017/2/13 end
打开c盘sessions.txt文件看一下具体的日志信息
4.monkeyrunner来实现脚本的录制和回放
在CMD下进入android的sdk下的tools目 录下, 进行下面的操作
录制: 1 、 在cmd下输入monkeyrunner recorder.py,
将打开下面的窗口
该窗口的功能:
1 、 可以自 动显示手机当前的界面
2、 自 动刷新手机的最新状态
3、 点击手机界面即可对手机进行操作, 同时会反应到真机, 而且会在右侧插入操作脚本
4:、 wait: 用来插入下一次操作的时间间隔, 点击后即可设置时间, 单位是秒
Press a Button: 用来确定需要点击的按钮, 包括menu、 home、 search, 以及对按钮的press、 down、 up属性
Type Something: 用来输入内容到输入框
Fling: 用来进行拖动操作, 可以向上、 下、 左、 右, 以及操作的范围
Export Actions: 用来导出脚本
Refresh Display: 用来刷新手机界面, 估计只有在断开手机后, 重新连接时才会用到
录制的脚本如下
[python] view plain copy
1. TOUCH| {' x' : 187, ' y' : 356, ' type' : ' downAndUp' , }
2. PRESS| {' name' : ' MENU' , ' type' : ' downAndUp' , }
3. WAIT| {' seconds' : 5. 0, }
4. DRAG| {' start' : (192, 128) , ' end' : (192, 640) , ' duration' : 1. 0, ' steps' : 10, }
回放: 使用命令monkeyrunner recorder_playback.py record_test.py
最后一个为录制的文件, 这里需要使用绝对路径
fiddler :fiddlerScript修改
static function OnBeforeResponse(oSession: Session) {
if (m_Hide304s && oSession.responseCode == 304) {
oSession["ui-hide"] = "true";
}
// add by dijian 2017/2/13 start
if (oSession.host.toLowerCase()=="wmapi.meituan.com"||oSession.host.toLowerCase()=="client.waimai.baidu.com")
{
oSession.utilDecodeResponse();
var fso;
var file;
fso = new ActiveXObject("Scripting.FileSystemObject");
file = fso.OpenTextFile("F:\\Sessions.txt",8 ,true, true);
file.writeLine("Request header:" + "\n" + oSession.oRequest.headers);
file.writeLine("token: " + oSession.GetRequestBodyAsString());
file.writeLine("Response code: " + oSession.responseCode);
file.writeLine("Response body: " + oSession.GetResponseBodyAsString());
file.writeLine("\n");
file.close();
}
// add by dijian 2017/2/13 end
}
发表评论
-
采集ymx商品信息
2018-08-29 15:28 530public static void main(String[ ... -
根据百度加密url, 获取真实url
2018-08-06 10:46 0public static void main(String[ ... -
fiddler 抓取 手机https 数据包 完美解决
2018-08-03 12:43 3058转:https://jingyan.baidu.com ... -
无忧代理IP
2018-07-30 16:19 0http://api.ip.data5u.com/dynami ... -
无所不能的四种请求方式(天下武功为怪不破)
2018-07-26 11:50 865package com.teamdev.jxbrowser.c ... -
post请求加json参数方式二
2018-07-24 14:02 2114package com.teamdev.jxbrowser.c ... -
post请求加json参数或xml参数
2018-07-20 18:21 1274import java.io.BufferedReader; ... -
jd编号
2017-11-02 17:59 559京东店铺:https://mall.jd.com/index- ... -
清除google缓存
2017-10-26 11:20 7101.进入 chrome://net-internals/#dn ... -
adb server is out of date. killing... 本地连接夜神模拟器失败、超时
2017-06-19 10:43 1523原因:1.模拟器器设置了代理;2.主要是模拟器和sdk 的ad ... -
fiddler抓取的https请求 数据乱码问题解决方案
2017-06-09 09:44 7298参考地址:http://blog.csdn.net/SomeO ... -
chromium.Browser 禁止加载图片,提升加载速度
2017-05-25 11:29 1213package com.teamdev.jxbrowser.c ... -
chrome 禁止加载网页图片 解决办法
2017-05-25 11:18 23571.在谷歌浏览器中输入:chrome://settings/c ... -
开源爬虫框架的优缺点?
2017-03-22 14:46 832开源爬虫框架各有什么优缺点? 作者:老夏 开发网络爬 ... -
反爬虫
2017-03-17 10:34 7001. 伪装user agent User agen ... -
爬虫被封禁原因
2017-03-17 09:37 1562爬虫被封禁常见原因 1. ... -
八爪鱼规则学习
2017-03-08 13:44 8611.八爪鱼采集器是任何一个需要从网页获取信息的人都必备的采集工 ... -
java模拟jquery请求动作(模拟点击、选择下拉)
2016-12-29 14:40 4092package com.teamdev.jxbrowser.c ... -
httpclient
2016-11-01 16:37 781package com.teamdev.jxbrowser.c ... -
jsoup + json 解析网页
2016-11-01 16:25 1311package com.teamdev.jxbrowser.c ...
相关推荐
安卓设备软件机器人,适合手机投屏,手机控制,APP 数据抓取,RPA 等应用场景NScript.AndroidBot安卓设备软件机器人。控制代码翻译自 scrcpy ,添加了针对 Bot 应用的修改和优化,适合手机投屏,手机控制,APP 数据...
Python爬虫工程师-App数据抓取思维导图,便捷整理思路,目标、对项目、公司、个人的意义、爬虫工程师技术储备
移动app抓取数据,进行数据防抓取防护,同时可以有效地分析抓取数据
本课程主要是利用移动端的自动化控制工具来抓取App数据,并且不讲Python基础,更注重实战。另外讲师思路清晰,按照思路手写代码,在使用工具或写代码的过程中也会给大家讲解很多小技巧,相信大家在边看边练的过程中...
企查查企业信息爬虫 ,企查查app每日新增企业抓取,可以进行每日的增量抓取、企业数据、工商数据等等。 每天定时抓取 自动刷新token 省份、市的所有代码 token自动刷新 根据地址自动将省份、市、区县进行分割 所有...
app-store-scraper, 从 itunes App Store 中抓取数据 app-store-scraper Node.js 模块从 itunes/mac App Store 抓取应用程序数据。 目标是提供一个尽可能接近于 google-play-scraper插件模块的接口。安装npm ins
1. **App.config**:这是.NET应用程序的配置文件,其中可能包含连接字符串、API密钥或其他敏感设置,对于数据抓取程序来说,可能存储了HTTP请求的超时设置或代理服务器信息。 2. **SQL.CONFIG**:这可能是用于存储...
爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...
Python爬虫抓取手机APP的传输数据 本文主要介绍了使用 Python 爬虫抓取手机 APP 的传输数据,特别是抓取超级课程表 APP 里用户发的话题。整个过程可以分为三个部分:抓取 APP 数据包、登录和抓取数据。 一、抓取 ...
总结:这个豆果美食爬虫代码项目涉及了网络爬虫的多个方面,包括爬虫框架选择、移动app数据抓取、反爬策略、数据处理与分析等,对于学习和实践网络爬虫技术具有很高的价值。同时,它也提醒我们,在开发爬虫时要注重...
数据库数据抓取是一种常见的IT操作,特别是在大数据处理、数据分析和系统集成中。在这个场景中,我们看到一个由VS 2013(Visual Studio 2013)编写的软件,其目标是读取源数据库中的数据并同步到另一个目标数据库。...
爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...
而Appium作为一种强大的自动化测试工具,不仅可以用于功能测试,还可以帮助我们实现对App的数据抓取。 #### 二、抓取App数据的步骤 根据提供的内容,我们可以将其分为以下几个部分进行详细的介绍: 1. **签名...
内容概要:本文档主要讲解了利用Python编写爬虫程序来抓取手机APP(如超级课程表)的数据的方法和步骤。具体涉及Fiddler工具的使用,以及urllib2库的应用,通过构造HTTP请求、添加必要的Header信息并携带登录表单...
本项目“Qimai爬取七麦数据网APP榜单数据”专注于使用Python进行Web爬虫开发,目的是从七麦数据网站抓取有关移动应用的排名和性能数据。 七麦数据(Qimai)是一个提供iOS和Android应用市场数据分析的平台,包含APP...
在Windows系统上,你可以使用Wireshark,而在Web开发中,Fiddler和Charles则更为常用,因为它们专注于HTTP/HTTPS协议,这对于网页数据抓取非常有用。 接下来,让我们探讨如何抓取大众点评网的数据。大众点评网作为...
在Android平台上,开发一款能够抓取并展示新闻的...以上就是Android抓取新闻Demo程序的主要技术要点,涵盖了网络通信、数据解析、UI设计、本地存储、权限管理等多个方面,对Android开发者来说是一次全面的实战训练。
8. **移动端APP数据抓取**: 抓取移动应用数据可以分为针对基于网页的APP、基于Web的APP和原生非Web的APP。对于非Web的APP,可能需要使用自动化工具(如Appium)或网络抓包工具(如Wireshark)来获取数据。 9. **...
微博数据抓取以及数据分析(已添加IP属地),包括: 用户ID,昵称,性别,认证信息,微博说明 用户的粉丝数量,关注数量,微博总数 每条微博的微博链接,微博内容,发布时间,发布设备,发布地点,抓取时的转发数,...