jamesguo / vWeChatCrawl

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

vWeChatCrawl-小V公众号文章下载(开源版)

批量导出任意微信公众号历史文章,会用python写hello world就会用这个。
配套视频教程 https://www.bilibili.com/video/BV1jv4y1f7j5/

注意:

本项目的最新文章会发在公众号“不止技术流”中,欢迎关注。
avatar
QQ交流群 703431832 加群暗号"不止技术流"

使用步骤:

a.安装Python库

直接 python setupPackage.py 安装本项目需要的库。有朋友反映默认源安装慢,这里我用了豆瓣的源。

b.安装并配置Fiddler

Fiddler的官网有时会连不上,可去pc.qq.com搜索Fiddler4 并安装
avatar

会弹出几个窗口,都点 Yes

avatar

最后是这样的,打了 3 个钩。点 OK 保存即可。

avatar

在主窗口右侧按下图所示设置,其中需要填的网址为 mp.weixin.qq.com/mp/profile_ext?action=getms

avatar

至此配置完成了,点软件左下角的方块,会显示Capturing ,表示它此时处在可以抓取数据的状态,再点一下会暂停抓取。此处先打开为抓取状态
avatar

有的朋友可能会在Fiddler 中抓取不到Https请求,请仔细按照上面流程检查。若有其他异常,绝大多数Fiddler相关的问题通过百度可以解决。

c.打开某个微信公众号的历史文章列表

avatar

如果您看到的界面跟上面的图片不对应,说明用了较新版本的微信,有3个方法:

方法1

点此下载这个软件,用它的免费功能帮你提取出主页,操作方法在这个链接的说明文档中有。如果你是纯小白也可以直接用这个软件完成你的任务,省时省力也不贵,性价比还是挺高的。

方法2

人工去构造一个类似这样的公众号历史文章网址 https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzA5ODEzMTIxOA== ,注意要把最后部分的“MzA5ODEzMTIxOA==”换成你要下载的公众号的,这个其实是公众号的编号(以两个等号==结尾),至于怎么获得这个编号,可以用“非微信浏览器”比发chrome或360等打开此号的任意一篇文章,右键,查看源码,然后从源码中搜索 "biz="。把拼接好的网址在微信中发给任意好友,然后从对话窗口中点开链接即可(这段操作确实有点绕,但没有更好的方法)。

avatar

方法3

如果看不明白上面的操作,还是老老实实下载稍早(2021.10 月)点的微信版本吧,安装后要从微信的设置中把自动升级选项取消。

链接:https://pan.baidu.com/s/1e8Xyc0aDx19jg2LxEqxwtA 提取码:dbt7

不管用什么方法,打开公众号历史文章列表之后,在列表中不断下划,使历史文章列表都显示出来,但注意不要划得太快。

Fiddler中显示了我们需要的请求

avatar

把这些请求保存下来,基中包含文章url列表

avatar

如果有下面这个窗口则选Raw Files

avatar

avatar

d.运行python文件

打开本项目的 config.json 文件,设置

  • jsonDir:上面在Fiddler中保存的文件
  • htmlDir:保存html的目录,路径中不能有空格
  • pdfDir:保存pdf的目录,路径中不能有空格
    改完记得保存文件

运行 python start.py #开始下载html
运行 python start.py pdf #把下载的html转pdf

上文中没提到的文件是实现其他功能的(作者偷懒把好几个项目都放在了这里),感兴趣的可了解,不感兴趣的也并不影响使用你使用上文所述的功能。

补充

可以批量抓取大量公众号的文章、阅读数等信息,欢迎企业用户商业合作 https://www.xiaokuake.com

也可以抓取快手相关数据,目前正在开发快手直播相关的工具,也欢迎讨论

作者微信 xiaov0755 有其他爬虫定制需求的可一起讨论(黑灰产不做)

本开源项目仅用于技术学习交流,请勿用于非法用途,由此引起的后果本作者概不负责。

主要思路参考这几篇文章
一步步教你打造文章爬虫(1)-综述
一步步教你打造文章爬虫(2)-下载网页
特别要仔细看第3篇
一步步教你打造文章爬虫(3)-批量下载

常见问题列在这里

一步步教你打造文章爬虫(4)-常见问题解答

其他接口:

实时推送公众号最新文章列表,即用户发送post请求,传入公众号列表,服务器返回相应的公众号文章链接、标题、发布时间等列表。详情查看项目中的 fetchNewArticle.py文件。

About


Languages

Language:Python 100.0%