通过手机模拟器爬腾讯新闻APP数据

最近接到公司派的1个任务,让我爬取腾讯新闻app的热点榜

此热点新闻每10分钟更新1次,所以需要每隔10分钟爬取一次,然后保存下来。最简单的办法就是找电脑网页版,但是翻遍所有网站也没有找到这个接口,所以只好乖乖地从手机端爬了。

手机端数据接口参数分析是一件很难的事,我们可以绕过此过程,在APP数据交换的过程通过mitmproxy工具将返回的数据拦截下来。

这种方法的优点就是简便,分析接口参数,缺点是需要一台手机,不停地进行数据请求,速度相对较慢,但是对此次爬取来说足够了。为了节省1部手机,我想到了爬取手机模拟器端APP数据。

下面一起来看看我是怎么实现的吧

第一步:安装charles、appium、mitmdump和夜神手机模拟器

1.安装charles

Charles是一款代理服务器,通过过将自己设置成系统(电脑或者浏览器)的网络访问代理服务器,然后截取请求和请求结果达到分析抓包的目的。

①下载:https://www.charlesproxy.com/latest-release/download.do

下载完成后,点击安装,一路默认安装即可。

②设置代理

③安装证书

依次点击帮助——ssl代理——安装charles root证书

点击确定,电脑端证书就安装完成了

再依次点击帮助——ssl代理——在移动设备或远程浏览器上安装charles root证书

然后在模拟器浏览器中输入chls.pro/ssl,会自动下载手机端证书并安装。

2.安装appium

依次安装Adroid SDK、JAVA和appium客户端即可

3.安装mitmproxy

mitmproxy是一个支持http和https的抓包程序,类似Fiddler、Cha,只不过它可以对接python1脚本。

①只需执行如下命令即可安装:Pip install mitmproxy

②证书配置:在命令行输入mitmdump,然后在用户目录找到CA证书

双击mitmproxy-ca-cert.p12,在电脑上安装证书,然后将mitmproxy-ca-cert.pem发送到模拟器上,在手机设置-安全-从SD卡安装,选中此文件,安装即可。

4.安装夜神手机模拟器

安装地址

http://soft.onlinedown.net/soft/987318.html

一直默认安装即可

第二步:用Charles分析出腾讯app热点新闻数据接口

首先设置模拟手机代理ip,长按WireSSID,点击修改网络

设置好代理ip,保存即可。

打开模拟器腾讯新闻APP,进入今日热搜界面,然后在charles中找到该接口

它的url信息为

将该url在浏览器中打开

该url看起来是比较复杂的,但是今天我们不去分析它,按照上述所说的方法抓取数据。

第三步:用mitmdump抓包,保存热点新闻数据

首先设置代理ip,步骤同第二步,不过要把端口设置为8080

然后编写python脚本抓取第二步的接口

有两种数据流方式,一种是相应数据response,一种是请求数据request,本次用response,flow代表数据流

为了筛选新闻热点的数据流,根据第二步url的固定部分判断该数据流是否是我们要的url,如果是,则保存flow.request.text,用json解析保存到表格内,至此脚本编写完毕。在脚本所在路径裕兴mitmdump -s demo.py

然后在模拟器中打开腾讯新闻今日热搜界面

再看看表格中保存的数据

第四步:用appium控制手机模拟器定时启动腾讯新闻APP

第三步中是手动点击查看热点榜,因为此热点信息是10分钟更更新1次

所以我们需要用appium写个脚本,模拟循环进行此过程,同时mitmproxy脚本会截取最新的数据

但是现在还是没法打开模拟器里的腾讯新闻app,因为模拟器还未连接到主机,还需要在夜神模拟器所在安装目录bin路径下运行以下代码

再检测一下

这就算连接成功了,再运行appium脚本就ok了,展示视频如下

正常情况应该是每隔10分钟点击1次才能爬到最新数据,此视频为了展示效果缩短了时间间隔。

小结:app的爬取是爬虫最难的部分,涉及很多复杂的逆向分析过程,这次只是借助模拟器介绍了1个非常简单的app爬取过程,有兴趣的朋友可以借此深入学习一下。

https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzA3NDQwNzI0NA==&scene=124#wechat_redirect

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,036评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,046评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,411评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,622评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,661评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,521评论 1 304
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,288评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,200评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,644评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,837评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,953评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,673评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,281评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,889评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,011评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,119评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,901评论 2 355

推荐阅读更多精彩内容