ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

半小时跑通微信公众号爬虫:把阅读、点赞、评论数据一网打尽

半小时跑通微信公众号爬虫:把阅读、点赞、评论数据一网打尽 半小时跑通微信公众号爬虫把阅读、点赞、评论数据一网打尽【免费下载链接】wechat_articles_spider微信公众号文章的爬虫项目地址: https://gitcode.com/gh_mirrors/we/wechat_articles_spider上周四晚上我盯着那份两百行的数据表格发呆。三个公众号半年的文章阅读量、点赞数要一篇篇点开复制一个下午才弄完三分之一。这种重复劳动让我想到微信公众号爬虫——朋友推荐了 wechat_articles_spider一个专门批量获取公众号文章数据的开源项目。项目装起来比想象中简单一条pip install wechatarticles就完事。它的定位也很朴素不做花哨界面只解决两件事——把某个公众号的历史文章链接拉下来再给每篇文章补上阅读数、点赞数和评论。听起来不复杂但正好把我最想省掉的那段手工劳动接走了。准备一把钥匙从浏览器里抠出 cookie 和 token 所有公众号数据接口都认钥匙这把钥匙由三样东西拼成微信公众号后台的 cookie 和 token以及点开任意一篇文章时需要的 appmsg_token。别被这几个词吓到获取方法其实就是一次复制粘贴。用 Chrome 打开公众号后台按 F12 切到 Network 面板刷新一下页面找到发往mp.weixin.qq.com的请求请求头里就能看到 cookieURL 参数里能找到 token。整套流程项目文档写得很细照着 docs/get_cookie_token.md 一步步来就行。至于 appmsg_token需要借助抓包工具。开个 Fiddler登录 PC 端微信点开一篇公众号文章在抓到的请求里找到它。项目文档 docs/get_appmsg_token.md 里有完整截图流程。我在这步卡了半个小时后来才明白关键点cookie 和 token 必须取自目标公众号的文章请求换个号就得重新取一次。想通这点后面就顺了。跑通一次完整抓取从文章链接到阅读点赞 拿到钥匙后我给自己定了一个真实任务把科技美学这个号最近半年的文章连同每篇的阅读数、点赞数和评论一起拿下来。整个过程分三步走。第一步拉文章列表。登录公众号后台后用PublicAccountsWeb这个类就能分页取到文章信息包括标题、链接、发布时间一次最多 5 条paw PublicAccountsWeb(cookiecookie, tokentoken) articles paw.get_urls(nickname, bizbiz, begin0, count5)begin是起始页码count是每页数量。翻页太频繁容易被限制所以我在每页之间故意停顿慢慢往前爬。第二步补上阅读数和点赞数。有了文章链接剩下的交给ArticlesInfotest ArticlesInfo(appmsg_token, cookie) read_num, like_num, old_like_num test.read_like_nums(article_url) comments test.comments(article_url)read_like_nums返回阅读数、点赞数和旧版点赞数comments返回评论的完整 JSON里面有评论人、内容、点赞数和置顶状态最后存成 JSON 文件供后续分析。这一步对我的意义很直接原来一个下午的手工活现在十几分钟就跑完了。第三步看响应里的细节。抓包时能看到接口返回的原始 JSON比如appmsgstat里就躺着read_num和like_num字段含义一目了然。跑通这一轮后我又顺手试了试文章下载功能。Url2Html能把任意一篇微信文章保存成离线 HTML图片也可以一并存到本地归档时相当省心测试示例在 test/test_Url2Html.py。顺手解决掉我踩过的三个坑 ️坑一文章链接总是抓不全。我最初只用公众号网页版一条路拿链接数量一多就被限制。后来发现项目支持多条渠道——网页版、PC 端微信、移动端微信甚至微信读书交叉着用覆盖范围就大得多了。坑二存下来的文章带着一堆转义符。从接口拿到的链接带着\/这种转义直接存没法用。项目在 wechatarticles/utils.py 里内置了去转义的工具函数我在脚本里顺手一调就干净了。坑三参数过期了报错却看不出原因。微信的 cookie 和 appmsg_token 有效期大约四小时过期后请求会静默失败。好在源码里对文章链接做了严格校验缺参数会直接抛出明确的异常提示照着错误信息排查比瞎猜快得多。说清性能边界什么时候该用它什么时候别用 ⚖️坦白讲这个工具不是万能的我在用之前也确认过它的边界。它适合的场景是中小规模的数据采集几十到几百篇文章做公众号运营分析、竞品观察、内容归档都很顺手。请求间隔建议控制在 5 到 10 秒被封了也不用慌等 5 到 10 分钟基本就能恢复参数过期就重新取一次换公众号也就多花几分钟。但它不适合做这几件事大规模批量抓取大量公众号、实时监控阅读量变化、自动登录微信、按关键词搜索文章——项目里明确写了这些做不到。如果你需要的是这几个方向这个工具帮不上忙不如早做打算。对我来说这个分寸感反而增加了信任它把能做什么和不能做什么写得明明白白不会让你在部署之后才发现路走不通。下一步从克隆仓库开始你的第一次抓取 如果你也想告别手工记录我建议先跑一遍test目录下的示例脚本比如 test/test_WechatUrls.py 和 test/test_WechatInfo.py照着改参数就能跑通。git clone https://gitcode.com/gh_mirrors/we/wechat_articles_spider克隆下来后先看 docs/get_cookie_token.md 把钥匙备好再对着 test/test_WechatInfo.py 改一改半小时内应该能看到第一批阅读数据出现在你的屏幕上。祝你的第一张数据表不再需要手动填。【免费下载链接】wechat_articles_spider微信公众号文章的爬虫项目地址: https://gitcode.com/gh_mirrors/we/wechat_articles_spider创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表