最近需要持续更新3w左右公众号的文章, 受技术leader的影响重新写了一下爬虫的一些代码, 效果不错, 写此文记录一下
在2015年的时候微信网页版限制还是没那么严格的, 当时采用的主要思路是使用微信网页版, 然后用requests去模拟登陆一下,
然后不停的去访问类似下面的接口爬取信息:
https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxcheckurl?requrl=encodeURIComponent('http://mp.weixin.qq.com/mp/getmasssendmsg?__biz=MjM5NzQ3ODAwMQ==#wechat_redirect')
当时为了能让爬虫多个实例跑, 用了一下 Celery
框架(现在想简直智障, 多个实例跑直接把程序启动N次就行了啊。。摔), 由于是模拟登陆, 所以又写了一套复杂的东西去生成二维码, 然后获取登陆URL, 具体的模拟登陆原理参考这个 wechat-deleted-friends , 另外相关的Celery Task里写的逻辑太复杂了, 一个Task里就带上了 requests断线重连机制, 模拟登陆机制, 解析列表, 解析文章等, 另外由于是web版微信有一套蛮复杂的sync机制, 有时候直接掉线需要再次的去手动登陆, 很是麻烦。
之后web版微信已经无法的获取Key了(2016年开始), 此方案就废弃了。。
经leader提醒, 改了一下架构, 其中项目的整体结构如下:
Over
声明: 本文 “微信公众号爬虫” 采用 CC BY-NC-SA 4.0 协议进行授权.
转载请注明原文地址: http://stackbox.cn/2016-07-21-weixin-spider-notes/index.html