教程|数据分析 抓取APP和微信平台数据
最近几天都在研究抓取APP和微信平台数据,目前研究出一点心得,跟大家分享一下。
Fiddle
Fiddler是一个http协议调试代理工具。
它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据
(指cookie,html,js,css等文件,这些都可以让你胡乱修改的意思)。
Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。(百度百科copy)
画一个流程图解释一下:
PC端下载并安装好Fiddler→选择 Tools > Options > Https 勾选(允许抓取https)
Connection勾选允许远程连接
(Fiddler默认端口号8888)
点击OK 完成PC端配置。
移动端(ios)配置:
PC端打开CMD->ipconfig
当前IP为192.168.101.200
手机打开局域网设置
进行如下配置:
设置好后,打开手机浏览器
输入http://ip:端口号
点击前往
点击下载证书进行安装(Android可直接安装)
Ios麻烦一点,
需要将下载好证书通过邮件发送到本机,
在邮件客户端安装(无法直接安装)
安装好后,重启PC端Fiddler就可以正常抓包了。(开启Fiddler时,浏览器无法正常发送请求,必须先停止Fiddler)
现在抓取微信公众号所有历史文章来练练手,
以下教程只提供笔者实战抓取的思路,不提供完整源码(太懒了,没时间码完整源码)
PC打开Fiddler,同时打开PC微信客户端(手机端微信无法抓包(应该不是采用http/https通讯的,这个我没有仔细研究),用PC客户端抓包,数据和手机端一摸一样),如下图:
将这条URL拿出来,浏览器User-Agent换为移动端
复制进去正常发送请求
可以看到浏览器返回公众号历史消息
微信公众号或者订阅号历史消息URL的规律
如果是一个经常发文章大号
一页能存大概80篇文章(9天)
我们几个太懒
所以带吧一条URL全部文章就下来了,
我找一个大号测试以下规律,他的初始URL为:
这两条URL我只是对公众号历史文章进行翻页,出现一个规律,每次请求新URL时,发送GET请求,带参只需要offset +=9,除此之外每一页URL发送请求(必加User_agent与Cookies)
拿到页面源码,本来想通过Beautiful拿到每一个信息,然后拼接成一个文章的URL,好久没用Beautiful,写了一次请求报错,又看了一下源码,发现find_all的那段div找不到,又看了一下请求完整源码,发现有完整的URL链接。
(好僵啊,每次就想Beautiful/Xpath/Pquery)
写了一个正则后,拿到大部分URL,然后和文章URL头拼接一下,形成完整URL,然后在get这个文章URL就OK了。
Fiddler抓包抓一些APP可能或显示网络错误之类(通讯应该不是http/https),如果手机微信直接抓,肯定抓不到,这里我绕了一下回到PC微信抓,轻松拿到URL。其他一些APP小伙伴们可以自行测试,大多数APP抓包是可以抓到的,如果不能抓试着换个思路就OK。
抓了这么多次数据,有了如下认识,移动端比PC端数据好爬(Firefox或者Chrome下载附加插件换User_Agent),写爬虫思路一定要灵活,换种方式思考就OK。最近微信很火的小游戏跳一跳我们就可以通过抓包修改分数,看了一下大佬们思路,大概如下过程,微信抓包-了解发送什么请求,带什么参数-看js源码了解session_id和其他参数如何构造的-伪造参数上传。
有兴趣小伙伴可以自行尝试下
(最近几天貌似又加强反爬)~~
来源:带吧 蒲某
请先 后发表评论~