WechatDownload微信公号文章下载工具

发布于 2023-02-07  7242 次阅读


前言

此软件已停更,感谢使用

2024-05-06

说说停止更新的原因,主要有两点:

  1. 我觉得软件基本功能已经完备,暂时懒得投入精力去更新维护。

  2. 爬虫毕竟不是啥好东西,我也怕被请去喝茶。


先叠个甲:本软件免费,请别拿去卖钱。TX有反爬机制,一次性爬几百篇文章有封号风险(只是封接口,不影响微信正常使用)。最后,摊上事别赖我。。。

弄这个软件的起因是经常看的一个微信公众号的文章经常发出去没几天就被404,那不如将文章保存到本地。加上最近在学Electron和TypeScript,于是就有了WechatDownload

软件

下载链接:WechatDownload
源码地址:https://github.com/xiaoguyu/wechatDownload

页面

image-20230814101333952

image-20230821104149231

使用

单篇文章下载

直接输入链接,点击下载按钮即可(此功能无需安装证书,如需要下载评论,请使用监控下载)

此方式无需登录微信,也因此无法获取评论和文章中QQ音乐音频,如需要这两样数据,请使用批量下载或监控下载

批量下载

批量下载需要代理,如果是初次使用,需要安装证书(只需要安装一次)

  • 初次使用请安装证书

    设置中心 → 打开证书路径 → 打开rootCA.crt文件

    Untitled

  • 批量下载

    1. 需要安装电脑版微信
    2. 在WechatDownload点击批量下载按钮
    3. 在电脑版微信打开一篇需要下载的公号的文章
    4. 回到WechatDownload,会弹框提示

      wechatDownload.gif

  • 监控下载

    1. 需要安装电脑版微信

    2. 在WechatDownload点击监控下载按钮(按钮会变颜色)

    3. 在电脑版微信打开需要下载的文章(可以打开多篇文章)

    4. 回到WechatDownload,再次点击监控下载按钮即可开始下载

      wechatDownload

  • 保存至 MySql

    需要执行文章末尾的 SQL 语句创建表

  • 线程配置

    时间间隔:单位是毫秒,假设时间间隔500,单线程是下载完一篇文章,等待500毫秒再继续下载。多线程就是每500毫秒异步下载文章,无需等待上一篇文章下载完成。

    单批数量:假设单批数量10,每次会同时异步下载10篇文章,等待这10篇下载完成,再继续下载10篇。

功能

其实,支持啥页面一看就知道了。

  • 支持选择下载范围
  • 将网页抓换成HTML、Markdown、PDF
  • 将网页源码保存至Mysql(下载来源是网络才有效)
  • 下载图片、音频到本地
  • 添加原文链接、元数据(作者、时间、公号名)
  • 跳过现有文章
  • 下载评论

下载来源(此选项只影响批量下载):

  • 网络:就是从微信接口获取文章
  • 数据库:如果选择了保存至Mysql选项,数据库中会保存文章的网页源码,此时如果需要将源码转换成HTML、Markdown ,选择下载来源是数据库即可。(微信接口用得多会被限制)

如需要用到数据库相关功能,请先创建相应的数据库表

DROP TABLE IF EXISTS wx_article;
CREATE TABLE wx_article (
    id INT ( 11 ) NOT NULL AUTO_INCREMENT,
    title VARCHAR ( 255 ) NULL DEFAULT NULL COMMENT '标题',
    content LONGTEXT NULL COMMENT '内容',
    author VARCHAR ( 255 ) NULL DEFAULT NULL COMMENT '作者',
    content_url VARCHAR ( 1023 ) NULL DEFAULT NULL COMMENT '详情链接',
    create_time datetime ( 0 ) NULL DEFAULT NULL,
    copyright_stat INT ( 11 ) NULL DEFAULT NULL,
    PRIMARY KEY ( id ) USING BTREE,
    UNIQUE INDEX uni_title ( title, create_time ) USING BTREE 
) ;

-- 2023-4-1 添加评论字段
ALTER TABLE wx_article ADD COLUMN comm LONGTEXT NULL COMMENT '精选评论',
ADD COLUMN comm_reply LONGTEXT NULL COMMENT '评论回复';

最后

没啥好说的了,有意见评论区提吧。欢迎大神帮忙优化代码。