微信公众号文章的完整爬取过程笔记
outline
一.基于sougou-api实现文章的爬取
二.基于anyproxy和monkeyrunner的文章自动爬取
一.基于sougou-api实现文章的爬取
1.可以直接抓微信搜狗主页
2.使用已有的软件包 + 代理的方式
调用API,通过微信公众号的ID,获取该账号的部分文章
这种办法只能获取微信文章的临时链接,所以需要把html文本保存到下来
二.基于anyproxy和monkeyrunner的文章自动爬取
假设条件:你有一批微信公众号ID(eg:gh_1380fb0258f6)
硬件条件:一台普通PC(笔者使用windows系统),一台安卓手机(本人使用的是华为荣耀8lite)
尽量不要使用模拟器,笔者在使用模拟器登陆微信后发现账户被封!!!
目标:爬取该批微信公众号的所有历史文章并增量爬取
1.基于anyproxy爬取公众号的所有文章
这一步已经有大神已经实现,这里直接使用他的代码:wechat_spider 微信爬虫
具体实现过程可参考github,在这一步需要注意选择正确的IP
2.基于monkeyrunner实现爬取的自动化
(1) 手机开启开发者模式
目前笔者遇到的手机开启开发者模式的方式是“在系统版本号上点击7,8次”
(2) PC安装安卓开发套件
安卓sdk的下载与安装可以参考AndroidDevTools
安装是否成功的检测方法可参考:入门monkeyrunner1-monkeyrunner的录制以及回放
(3) 自动化爬取的流程
S1 使用微信的搜索框,通过微信公众号ID搜索到该账号


S2 点击进入该账号,下拉,点击全部文章,进入

S3 下拉,点击文章列表的某一篇文章,打开

S4 等待一段时间后回退至微信的首页,继续执行S1
爬虫抓取策略
- 周期轮询
- 事件驱动
- 预测抓取
- 周期轮询+事件驱动结合的方式
1.搜狗API定时轮询任务,发现发布新文章的公众号后,将公众号ID推送ID队列
2.ID队列,临时存储ID
3.PC端定时从ID队列中拉取ID,并利用微信的搜索功能查询该公众号的信息,爬取公众号文章。
总结
微信公众号文章的爬取可以用于舆情监控
笔者认为有两种方式:
1.监控微信公众号文章的点赞数,发现"爆款"文章,监控爆款文章的主题或者事件
2.关注大批微信公众号,针对所有文章做聚类分析,发现热点主题和事件
网友评论