微信公众号文章爬虫(微信文章阅读点赞的获取)
安装
pip install wechatarticles
展示地址:
日更,获取公众号的最新文章链接,支持日更阅读点赞评论正文
注:本项目仅供学习交流,严禁用于商业用途(该项目也没法直接使用),不能达到开箱即用的水平。使用本项目需要读文档+源码+动手实践,参考示例代码(test
文件夹下)进行改写。
提示:另外,已经有很多朋友(大佬)通过直接看源码,已经基于这套项目,或者重写,用于各自的需求。
实现思路一:
- 从微信公众号平台获取微信公众所有文章的url
- 登录微信PC端或移动端获取文章的阅读数、点赞数、评论信息
完整思路可以参考我的博客: 记一次微信公众号爬虫的经历(微信文章阅读点赞的获取)
实现思路二:
- 登陆微信PC端或移动端获取公众号所有文章的url,这种获取到的url数量大于500,具体数量每个微信号不完全一致(目前只能一次性,无法获取第二次!!!请慎重使用
test_GetUrls.py
,最好不用。。。) - 同上种方法,获取文章阅读数、点赞数、评论信息
公开已爬取的公众号历史文章的永久链接,日期均截止commit时间,仅供测试与学习,欢迎各位关注这些优质公众号。
公众号列表
项目始于2017年,当前更新于2023年3月
项目代码进行调整,调用以前的接口请使用pip install wechatarticles
。
- 爬取失败的时候,可能有以下原因
- 运行的时候需要关闭网络代理(抓包软件),或者添加相关参数
- 参数是否最新,获取微信相关参数(cookie、token)时,一定要保证是对应公众号的任意文章
- 检查代码
- 需要关注对应公众号(Maybe)
- 思路一获取url时,每页间隔可以设定久一点,比如3分钟,持续时间几小时(来自网友测试)
- 获取文章阅读点赞时,每篇文章可以设定在5-10s左右,过期时间为4小时;若被封,大约5-10分钟就可继续抓取。
- 思路二获取url时,如果被封,需要24小时整之后才能重新抓取(该条作废,暂时不能解封)
参数文件说明见README
python版本
python
: 3.6.2、3.7.3
功能实现
功能
公众号相关API实例
利用公众号网页版获取微信文章url
此处有次数限制,不可一次获取太多url。解决方案多个账号同时爬取 test_WechatUrls.py
登录微信PC端获取文章信息(阅读点赞)
快速获取大量文章urls(利用历史文章获取链接)
微信文章下载为离线HTML(含图片)
学习/运行流程
可以看这个issue,十分感谢大佬简洁的文字说明。
相关文档
见博客与下方文档
official_cookie和token手动获取方式见这篇文档
wechat_cookie和appmsg_token手动获取的介绍,可以参考这篇文档
联系注意事项:
-
不(能)做自动登录微信公众号、微信
-
不(能)做实时(获取参数、阅读点赞、获取文章)
-
换一个公众号、参数过期,均需手动更新,如何获取参数均在文章中提及,请仔细查阅
-
不能做关键词搜索(即微信搜一搜功能),比如搜索所有含“科技”两个字的文章。
Q & A
-
项目能不能正常运行?
答:项目可正常运行。
-
xxx怎么运行/启动,需要获取哪些参数?
答:请看源码,并手动运行看看输出报错。
-
xxx参数怎么获取?
答:文档和博客均描述的很清楚,请仔细阅读。
-
我要xxxx,需要怎么做?
答:看文档,看源码
-
网页每日更新的方式怎么做的?
答:不是万能key。方案很简单,就是模拟点击+代理软件(Fiddler或Mitmproxy)拦截包,每日抓一次,如果你有更好的方案也欢迎告知。这部分未开源(如果有看到相关完整开源的可以提个issue学习一下),纯粹是因为配环境+定制化太麻烦,而且存在一定的问题。懂的看到这里能够实现的就能实现,如果问我我也不好回答你,太耗时耗力。
-
PC端微信与抓包软件Fiddler是必装的吗?
答:不是。这个只是我了解(认为)到,这两个是相对最容易完成整个过程的。代替方案:可以抓手机端的微信(安卓和IOS均可,安卓的要root才能抓到阅读点赞);抓包软件Fiddler这个可替代的很多,只要能进行HTTPS抓包查看数据就行。
-
大量公众号的文章怎么抓?
答:本项目无法实现。没很好的方案,参考5。切换一个公众号的时间成本大概要3-5分钟,视熟练程度而异。
广告位
附录
问问题的正常方式:
- 描述清楚你运行的系统环境、Python环境...(这步骤可选择性忽略)
- 运行了什么代码(改动了哪部分),报了什么错(请完整截图)?
- 自己根据报错做了哪些尝试?(文档中是否有描述?在网上搜索的解决方案有哪些)
编程是实践出真知,运行的正确与否可以直接试出来,没必要耽误两个人的时间。如果运行出了问题,请按照以上流程进行提问,但前提是自己要运行过。请直接说问题or需求,不需要等我回复再说。谢谢!大部分问题均可以交流,如果事无巨细的提问,也接受付费教学。
微信赞赏码