<p> 近期,公司有相关公众号爬取的需求,摸索了一段时间,一开始使用搜狗微信去取数据,但随着后续搜狗的验证码机制越发恶心,用户体验极差,并且也无法取到历史数据,只能取到近10条群发,这也预示着通过搜狗微信爬取数据的方案对于我来说只能是一霎花火。</p>
<p> 下面这套方案是基于微信客户端进行数据的爬取的,实际上我很久之前就一直在使用了,只是一直没有时间写,现在抽空把整套方案梳理一遍,后续也会push到github上面去。</p>
<p> 或许你有更好的方法,欢迎在评论里留言,一起交流学习。</p>
一、前提
1.一个微信号一天只能最多获取8000篇文章的阅读/点赞信息;
2.微信公众号发文频率(一条群发消息包含8篇以内文章);
服务号1个月(按自然月)内可发送4条群发消息;
订阅号(认证用户、非认证用户)1天内可群发1条消息;
二、获取公众号文章信息所需参数
步骤如下:
1.获取微信号与公众号对应信息(抓包获取,且除文章内容外每一步骤均需要以下参数)
uin:微信用户id(已取缔);key:与公众号信息及uin绑定,非万能key使用间隔为5秒,万能key为2秒,有效时间为半小时内(已取缔);- pass_ticket:改版后功能类似于key,暂未知使用有效时间;
- biz:微信公众号唯一id(base64加密后);
- wap_sid/wap_sid2:cookies内参数,同上key;
- idx:微信文章对应楼层信息,永久链接内可获取;
2.获取公众号文章列表
- 利用微信公众号id关注公众号(可获取所有历史文章)
- 利用微信公众号biz(唯一标识符)直接访问链接(未关注可获取近10条群发,已关注可获取所有历史文章)
3.获取文章内容(永久链接)
4.获取点赞数/阅读数
req_id:文章源码获得,每次请求不同,一次有效
5.获取评论内容
appmsgid:微信文章对应id信息,永久链接内可获取
三、实施
待更...