微信公众号文章爬取方法整理

1.用python爬取


实现方法:通过微信提供的公众号文章调用接口,实现爬取公众号文章的功能

步骤:

1.需要安装python selenium模块包,通过selenium中的webdriver驱动浏览器获取Cookie的方法、来达到登录的效果;

2.使用webdriver功能需要安装对应浏览器的驱动插件,我这里测试用的是谷歌浏览器: 
google chrome版本为52.0.2743.6 ; 
chromedriver版本为:V2.23 
注意:谷歌浏览器版本和chromedriver需要对应,否则会导致启动时报错。【附:selenium之 chromedriver与chrome版本映射表(更新至v2.30))】

3.微信公众号登陆地址:https://mp.weixin.qq.com/

4.微信公众号文章接口地址可以在微信公众号后台中新建图文消息,超链接功能中获取:

5.搜索公众号名称

6.获取要爬取的公众号的fakeid

7.选定要爬取的公众号,获取文章接口地址

8.文章列表翻页及内容获取

2.AnyProxy代理批量采集

https://zhuanlan.zhihu.com/p/24302048

实现方法:anyproxy+js


实现方法:anyproxy+java+webmagic

3.FiddlerCore


实现方法:抓包工具,Fiddler4

通过对多个账号进行抓包分析,可以确定:

_biz:这个14位的字符串是每个公众号的“id”,搜狗的微信平台可以获得

uin:与访问者有关,微信号id

key:和所访问的公众号有关

步骤:

1,写按键精灵脚本,在手机上自动点击公号文章列表页,也就是“查看历史消息”;
2,使用fiddler代理劫持手机端的访问,将网址转发到本地用php写的网页;
3,在php网页上将接收到的网址备份到数据库;
4,用python从数据库取出网址,然后进行正常的爬取。

爬的过程中发现一个问题:
如果只是想爬取文章内容,似乎并没有访问频率限制,但如果想抓取阅读数、点赞数,超过一定频率后,返回就会变为空值,我设定的时间间隔为10秒,可以正常抓取,这种频率下,一个小时只能抓取360条,已经没什么实际意义了。

4.清博 新榜

如果只是想看数据的话,直接看每天的榜单就可以了,还不用花钱,如果需要接入自己的系统的话,他们也提供api接口