最近接到了公司派遣的一个任务,请我登上了腾讯新闻APP的热线
这个热消息每10分钟更新一次,所以需要每10分钟爬取并保存。 最简单的方法是找电脑的主页版,但是翻遍了所有的网站也找不到这个界面,所以只能乖乖地从手机上爬下来。
分析手机端的数据接口参数是一项挑战,但您可以绕过此过程,在APP交换数据的过程中截获使用mitmproxy工具返回的数据。
该方法的优点是简便,分析界面参数,缺点是需要手机,不断地进行数据请求,速度相对较慢,但对于这次的爬网已经足够了。 为了节约一部手机,我想到了爬手机模拟器端的APP数据。
看看我是怎么实现的
http://www.Sina.com/http://www.Sina.com /
Charles是一种代理服务器,它通过将自己设置为系统个人计算机或浏览器)的网络访问代理服务器,以达到侦听请求和请求结果并分析捕获的目的。
下载: https://www.Charles proxy.com/latest-release/download.do
下载完成后,单击“安装”,默认安装。
设置代理人
安装证书
第一步:安装charles、appium、mitmdump和ssdlm手机模拟器
点击ok,电脑端证书安装完成
1.安装charles
下一次在模拟器浏览器中键入chls.pro/ssl时,将自动下载并安装手机端证书。
帮助——ssl代理——安装charles root证书
依次安装Adroid SDK、JAVA、appium客户端即可
帮助——ssl代理——在移动设备或远程浏览器上安装charles root证书
mitmproxy是一个支持http和https的捕获程序,与Fiddler、Cha类似,但可以停靠在python1脚本中。
只需运行Pip install mitmproxy命令即可安装
证书配置:在命令行中输入mitmdump,在用户目录中找到CA证书
双击mitmproxy-ca-cert.p12,在电脑上安装证书,将mitmproxy-ca-cert.pem发送到模拟器,从手机设置-安全-SD卡安装,在此
2.安装appium
安装位置
3358 soft.onlinedown.net/soft/987318.html
一直默认安装就可以了
3.安装mitmproxy首先设置模拟手机代理ip,长按WireSSID,点击修改网络
设置代理ip并保存即可。
打开模拟器腾讯新闻APP,进入今天的热搜界面,在charles中找到该界面
url信息如下所示
在浏览器中打开url
这个url看起来很复杂,但今天不分析它,而是用上述方法捕获数据。
4.安装ssdlm手机模拟器
首先设置代理ip。 与步骤2相同,但将端口设置为8080
然后,编写python脚本以捕获步骤2的接口
有对应的数据response和请求数据request两种数据流方式,这次用response、flow表示数据流
为了过滤新闻热点的数据流,根据步骤2的url的固定部分,判断该数据流是否是我们希望的url,如果是,保存flow.request.text,用json分析后保存在表中在脚本所在的路径中键入mitmdump -s demo.py
然后用模拟器打开腾讯新闻今天的热门搜索界面
看看保存在表中的数据吧
第二步:用Charles分析出腾讯app热点新闻数据接口
在第三步中,热点信息每10分钟更新一次,因此手动单击以显示热点列表
因此,需要用appium编写脚本,在模拟周期中进行这个过程。 同时,mitmproxy脚本剪切最新的数据
但是,至今仍无法打开模拟器内的腾讯新闻app。 由于模拟器尚未连接到主机,因此必须在安装ssdlm模拟器的目录ggdxb的路径中运行以下代码
让我再检查一次
33558 www.Sina.com//APP爬网是爬行动物最难的部分,有很多复杂的反向分析过程。 这次只是用模拟器介绍了非常简单的APP爬网过程,感兴趣的人可以利用它深入学习一下。
一分快3单双技巧/p>
这个url看起来很复杂,但今天不分析它,而是用上述方法捕获数据。
4.安装ssdlm手机模拟器
首先设置代理ip。 与步骤2相同,但将端口设置为8080
然后,编写python脚本以捕获步骤2的接口
有对应的数据response和请求数据request两种数据流方式,这次用response、flow表示数据流
为了过滤新闻热点的数据流,根据步骤2的url的固定部分,判断该数据流是否是我们希望的url,如果是,保存flow.request.text,用json分析后保存在表中在脚本所在的路径中键入mitmdump -s demo.py
然后用模拟器打开腾讯新闻今天的热门搜索界面
看看保存在表中的数据吧
第二步:用Charles分析出腾讯app热点新闻数据接口
在第三步中,热点信息每10分钟更新一次,因此手动单击以显示热点列表
因此,需要用appium编写脚本,在模拟周期中进行这个过程。 同时,mitmproxy脚本剪切最新的数据
但是,至今仍无法打开模拟器内的腾讯新闻app。 由于模拟器尚未连接到主机,因此必须在安装ssdlm模拟器的目录ggdxb的路径中运行以下代码
让我再检查一次
33558 www.Sina.com//APP爬网是爬行动物最难的部分,有很多复杂的反向分析过程。 这次只是用模拟器介绍了非常简单的APP爬网过程,感兴趣的人可以利用它深入学习一下。