- 浏览: 373476 次
- 性别:
- 来自: 四川
文章分类
- 全部博客 (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 524public static void main(String[ ... -
根据百度加密url, 获取真实url
2018-08-06 10:46 0public static void main(String[ ... -
fiddler 抓取 手机https 数据包 完美解决
2018-08-03 12:43 3048转:https://jingyan.baidu.com ... -
无忧代理IP
2018-07-30 16:19 0http://api.ip.data5u.com/dynami ... -
无所不能的四种请求方式(天下武功为怪不破)
2018-07-26 11:50 858package com.teamdev.jxbrowser.c ... -
post请求加json参数方式二
2018-07-24 14:02 2097package com.teamdev.jxbrowser.c ... -
post请求加json参数或xml参数
2018-07-20 18:21 1266import java.io.BufferedReader; ... -
jd编号
2017-11-02 17:59 541京东店铺:https://mall.jd.com/index- ... -
清除google缓存
2017-10-26 11:20 6871.进入 chrome://net-internals/#dn ... -
adb server is out of date. killing... 本地连接夜神模拟器失败、超时
2017-06-19 10:43 1515原因:1.模拟器器设置了代理;2.主要是模拟器和sdk 的ad ... -
fiddler抓取的https请求 数据乱码问题解决方案
2017-06-09 09:44 7286参考地址:http://blog.csdn.net/SomeO ... -
chromium.Browser 禁止加载图片,提升加载速度
2017-05-25 11:29 1205package com.teamdev.jxbrowser.c ... -
chrome 禁止加载网页图片 解决办法
2017-05-25 11:18 23531.在谷歌浏览器中输入:chrome://settings/c ... -
开源爬虫框架的优缺点?
2017-03-22 14:46 822开源爬虫框架各有什么优缺点? 作者:老夏 开发网络爬 ... -
反爬虫
2017-03-17 10:34 6941. 伪装user agent User agen ... -
爬虫被封禁原因
2017-03-17 09:37 1551爬虫被封禁常见原因 1. ... -
八爪鱼规则学习
2017-03-08 13:44 8551.八爪鱼采集器是任何一个需要从网页获取信息的人都必备的采集工 ... -
java模拟jquery请求动作(模拟点击、选择下拉)
2016-12-29 14:40 4082package com.teamdev.jxbrowser.c ... -
httpclient
2016-11-01 16:37 772package com.teamdev.jxbrowser.c ... -
jsoup + json 解析网页
2016-11-01 16:25 1298package com.teamdev.jxbrowser.c ...
相关推荐
Python爬虫工程师-App数据抓取思维导图,便捷整理思路,目标、对项目、公司、个人的意义、爬虫工程师技术储备
移动app抓取数据,进行数据防抓取防护,同时可以有效地分析抓取数据
企查查企业信息爬虫 ,企查查app每日新增企业抓取,可以进行每日的增量抓取、企业数据、工商数据等等。 每天定时抓取 自动刷新token 省份、市的所有代码 token自动刷新 根据地址自动将省份、市、区县进行分割 所有...
1. **App.config**:这是.NET应用程序的配置文件,其中可能包含连接字符串、API密钥或其他敏感设置,对于数据抓取程序来说,可能存储了HTTP请求的超时设置或代理服务器信息。 2. **SQL.CONFIG**:这可能是用于存储...
爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...
app-store-scraper, 从 itunes App Store 中抓取数据 app-store-scraper Node.js 模块从 itunes/mac App Store 抓取应用程序数据。 目标是提供一个尽可能接近于 google-play-scraper插件模块的接口。安装npm ins
Python爬虫抓取手机APP的传输数据 本文主要介绍了使用 Python 爬虫抓取手机 APP 的传输数据,特别是抓取超级课程表 APP 里用户发的话题。整个过程可以分为三个部分:抓取 APP 数据包、登录和抓取数据。 一、抓取 ...
总结:这个豆果美食爬虫代码项目涉及了网络爬虫的多个方面,包括爬虫框架选择、移动app数据抓取、反爬策略、数据处理与分析等,对于学习和实践网络爬虫技术具有很高的价值。同时,它也提醒我们,在开发爬虫时要注重...
数据库数据抓取是一种常见的IT操作,特别是在大数据处理、数据分析和系统集成中。在这个场景中,我们看到一个由VS 2013(Visual Studio 2013)编写的软件,其目标是读取源数据库中的数据并同步到另一个目标数据库。...
爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...
而Appium作为一种强大的自动化测试工具,不仅可以用于功能测试,还可以帮助我们实现对App的数据抓取。 #### 二、抓取App数据的步骤 根据提供的内容,我们可以将其分为以下几个部分进行详细的介绍: 1. **签名...
在Windows系统上,你可以使用Wireshark,而在Web开发中,Fiddler和Charles则更为常用,因为它们专注于HTTP/HTTPS协议,这对于网页数据抓取非常有用。 接下来,让我们探讨如何抓取大众点评网的数据。大众点评网作为...
本项目“Qimai爬取七麦数据网APP榜单数据”专注于使用Python进行Web爬虫开发,目的是从七麦数据网站抓取有关移动应用的排名和性能数据。 七麦数据(Qimai)是一个提供iOS和Android应用市场数据分析的平台,包含APP...
在Android平台上,开发一款能够抓取并展示新闻的...以上就是Android抓取新闻Demo程序的主要技术要点,涵盖了网络通信、数据解析、UI设计、本地存储、权限管理等多个方面,对Android开发者来说是一次全面的实战训练。
8. **移动端APP数据抓取**: 抓取移动应用数据可以分为针对基于网页的APP、基于Web的APP和原生非Web的APP。对于非Web的APP,可能需要使用自动化工具(如Appium)或网络抓包工具(如Wireshark)来获取数据。 9. **...
微博数据抓取以及数据分析(已添加IP属地),包括: 用户ID,昵称,性别,认证信息,微博说明 用户的粉丝数量,关注数量,微博总数 每条微博的微博链接,微博内容,发布时间,发布设备,发布地点,抓取时的转发数,...
在IT行业中,数据提取与保存是一项基础且重要的技能,尤其在大数据时代,对社交媒体平台如快手APP的数据进行分析,可以洞察用户行为、市场趋势等关键信息。本篇将详细讲解如何使用Python爬虫技术来提取并保存快手APP...
大多数APP里面返回的是json格式数据,或者一堆加密过的数据 。这里以超级课程表APP为例,抓取超级课程表里用户发的话题
涉及多类型验证码识别、多类型模拟登陆、多类型反反爬措施、APP数据抓取、Scrapy框架、分布式爬虫等。.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出...