用fiddler获取微信评论

要获取微信上公众号文章的评论,直接在PC上打开相应网页会发现并没有评论内容,这点和微博移动端不同。所以我只能直接截获手机上的包。这里我使用了Fiddler软件。Fiddler的安装和运行并不复杂,有点麻烦的是配置Fiddler的客户端并让手机安装Fiddler的证书。

1、Fiddler客户端的配置:

Tools->Options...->Connections:

用fiddler获取微信评论

1.Fiddler listens on port是手机连接fiddler时的代理端口号,默认8888即可
2.Allow remote computers to connect是允许远程发送请求,需要勾上,会有warning:
用fiddler获取微信评论
意思就是会允许远程客户端的包通过电脑,然后Fiddler必须重启才能生效,重启的过程可能会遇到防火墙要求Remote Access许可。
Tools->Fiddler Options->HTTPS:
用fiddler获取微信评论
勾上Decrypt HTTPS traffic,会抓到手机的https请求,如果想抓到https请求还需要在手机安装证书

2、手机端的配置:
前提:必须确保安装fiddler的电脑和手机在同一个wifi环境下,也就是在同一局域网内。我是通过自己电脑上的共享wifi,这样也可以实现。一般的话只要笔记本和手机在一个路由器下就行。如果台式机的话可能需要一根网线。
步骤:
1、查看电脑ip,只要把鼠标放fiddler右上角的Online处,就可以看到:
用fiddler获取微信评论
此时在手机上查看所连接wifi的ip地址,我这里是:192.168.23.2
可见本机和手机在192.168.23.xxx的局域网中。

2、打开手机浏览器,输入网址:http://xxx.xxx.xxx.xxx:8888,然后前往,可以进入Fiddler的证书下载页面。
如果进不去可能是地址选错了,比如我这里应该是http://192.168.23.1:8888/而不是其他的3个;
也可能是Fiddler没有重启;

3、点击最下端的FiddlerRoot certificate,然后为证书命名后就安装成功了。
如果觉得不安全可以在工作完成后,从手机受信任的凭据里找到DO_NOT_TRUST_FiddlerRoot这个证书并删除。

4、最后在手机的wifi配置里手动设置代理,代理服务器主机名为主机ip,我的是192.168.23.1,代理端口为8888。
这样就可以在Fiddler上抓取手机的包了。


在微信上截获的公众号的评论及其内容:
用fiddler获取微信评论
接下来就可以保存JSON进行分析,我尝试用Cookie根据网址爬取数据,但我header没设置好,并没有成功爬到数据,可能需要模仿手机的header发送request请求。(要学习的还有很多哇)

除此之外还能获得该文章的阅读和点赞数:

用fiddler获取微信评论

Reference:

[1]http://blog.****.net/wnma3mz/article/details/78570580 记一次微信公众号爬虫的经历

[2]https://www.cnblogs.com/meitian/p/4997310.html 使用Fiddler对手机上的程序进行抓包

etc.