吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 13440|回复: 585
上一主题 下一主题
收起左侧

[原创工具] 【开源】微信公众号文章下载器,用于下载微信公众号的所有文章

    [复制链接]
跳转到指定楼层
楼主
ingdear 发表于 2022-6-20 15:48 回帖奖励
本帖最后由 ingdear 于 2022-6-22 17:42 编辑

以前也是用论坛一位大佬的软件(WeChatDownload)下载文章的,后来微信版本更新了,需要用回旧版本微信才能使用,就弄了个。
设计得比较简单,就是一步一步来,没有使用多线程之类的,也没有以前大佬的那么多功能。

如需要分析微信公众号文章列表的可参考之前的另外一篇分析文章:Fiddler抓取PC版微信公众所有文章数据的分析


软件环境:VS2015+C#+.NET4.0+Fiddler+SQLITE
SQLITE是用来存放文章列表信息的:标题、链接、状态、文章类型等信息
本软件提供源代码,基本的注释都有,需要的可以下载修改。

补充说明:
1、文章下载后,放在软件的根目录下,以公众号名命名的文件夹

2、显示 ok 2022/6/20 16:37:57 的那条信息表示的是获取文章列表成功,文章列表存放在SQLITE数据库中,即:Database.db 文件中,可以用SQLite Expert Personal软件打开,软件有免费版本。当公众号的文章比较多的时候,需要一定的时间才能下载完成。
3、出现:success: 文章标题(http://mp.weixin.qq.com/XXXXXXXX),获取文章成功。 2022/6/20 16:38:41 才表示开始下载文章,出现这个时,根目录下才有公众号命名的文件夹及文章发布时间和文章标题命名的html文件。





补充2:
问:下载过程中,中途停止(意外/主动都算)后接下来是怎么处理的?
答:中途停止分两种情况
       一种是在下载文章列表的时候停止,下次重新获取后,需要从头开始重新获取一次文章列表,但是重复的文章不会保存,只保存上次没有保存的文章。
    (当初设想的时候考虑到这个中止不知道是中止一天还是一个月或是一年,所以就没有去设计保存上次获取的offset,自己动手的可以在数据表中添加个保存offset,下次从这个offset开始。不过需要考虑一种情况,就是中止了很久,中止期间又更新了很多文章的情况)
       一种是在下载文章的时候停止,这个没有影响,下次重新开始后,会从接下来的一篇未保存的文章开始保存(数据库有记录哪篇已下载)。


文章列表获取的原理:当一次文章列表获取完成时,会在数据表中记录最后一次完整获取的时间,当下次再获取同一公众号时,会从最新的开始获取,然后一直找到上次完整获取时间的前3天。比如上次完整获取为2022-6-3日,这次会从最新的开始,一直获取到2022-6-1日为止,冗余几天是为了防止漏掉文章。
所以如果没有一次完整获取文章列表,那就会每次都从头到尾的获取一次。



文章存放形式


软件功能:获取一个公众号里的所有文章,然后保存成HTML文件。一篇文章一个HTML文件。
不实现功能:付费文章隐藏了的不能下载,视频不能下载,音频没有下载。图片没有下载,直接使用图片链接地址。
下载时间:假设1000篇文章,没有出错等情况下,下载完成所需时间:1000/10*20+1000*20=6.2小时。
                 获取文章列表的参数每30分钟过期一次,1000篇文章中间需要重新获取一次参数。
                 觉得时间太久的,可以自行修改 获取时间间隔,不建议过快,太频繁有可能会触发微信的防采集机制而限制访问某公众号。
                 由于采集太快还导致一段时间限制访问某公众号的,一般隔天会恢复。(使用20秒的间隔测试过采集多个公众号,合计大几千文章没有出现过限制访问的情况)
注意:虽然测试过采集多个公众号,不过由于微信文章表示形式多样,可能会出现采集出错或是采集后内容与原文不一致的情况。

测试过的平台(VB虚拟机):WIN7_X86+.NET4.0,WIN7_X64+.NET4.0,WIN10_X86,WIN10_X64,微信版本:3.7.0

动图演示:



界面



session参数有效时间为30分钟,超过30分钟就会超时,需要重新获取




重新获取session参数




使用方法:
1、先关掉所有正在打开的公众号文章。
2、点击【①获取参数】,然后再打开需要下载文章的公众号,选择打开公众号里任意一文章。
3、文章加载完全后,【运行日志】里会显示获取的各项参数。当参数获取完成后,会自动开始获取文章。
4、请不要多开本软件。

获取一个公众号里文章的流程:
先获取必须的参数-->获取公众号的所有文章并入SQLITE数据库里-->再从数据库里取出文章,一篇一篇下载并做标记。

获取内容:
只是把文章的内容保存,没有做处理。图片使用的是网络地址,没有保存留言,可以自己修改添加上去。

会产生的问题及解决方法:
1、当正在获取参数的时候,浏览器可能会出现:【未连接:有潜在的安全问题】,而不能浏览网页。
解决方法:大概原因是Fiddler的证书问题,只需要等参数获取完成或手动停止参数获取即可恢复。

2、当没有关闭现有打开的公众号文章时,此时点击【获取参数】有可能会获取到当前浏览文章的参数,当你要获取另外一个公众号的数据时,可能会出现参数错误的情况。
解决方法:先关掉所有正在浏览的公众号文章,然后再点击【①获取参数】,再打开需要下载的公众号的任意一文章。

3、出现提示error类的信息问题。
解决方法:一般按照方法重试一/几次就可以。如果不行,可关掉软件重新打开。

4、在获取参数时,软件意外关闭或是主动关闭,再访问网页时会提示:【代{过}{滤}理服务器拒绝连接】
解决方法:这是由于在获取参数时,软件会修改系统的代{过}{滤}理,如果没有停止,该代{过}{滤}理会一直存在。只需要重开软件,点击【①获取参数】,然后再点击【①停止获取】即可。

5、正在获取文章时,软件意外或主动关闭后,重新打开后,以前文章是否会重复获取或下载。
答:不会重复,在获取文章列表时关闭,下次重开后,还是会重第一篇文章开始获取,找到重复的会自动跳过。
      当在下载文章时关闭,下次重开后,会从下一篇未下载的文章开始下载。

6、由于Fiddler证书安装问题,可能会出现其它未知错误,请使用搜索引擎查找相关解决方法,或提供可复现的方案进行回帖。

7、有时候会出现打开文章后,参数没有获取完全,一直不进行采集。
解决方法:关掉文章后再打开一次一篇文章即可,尽量不使用刷新,有些参数只有第一次打开才有。

8、软件被WIN10的安全中心删除了怎么办?
解决方法:通过安全中心,添加到排除列表里面。

免责和隐私声明:
1、本软件只用于个人技术学习和免费使用,请勿用于非法用途,如产生法律纠纷与本人和52破解论坛无关。
2、本软件在任何情况下都不会收集个人隐私及其它任意数据。
3、本软件为开源软件,如经过修改,发生任何意外情况均与本人和52破解论坛无关。


软件
----------------------------
成品: 微信公众号文章下载器.rar (1.25 MB, 下载次数: 1503)
链接: https://pan.baidu.com/s/16QojgMOwGxVOtdDa5X52RA?pwd=h32s 提取码: h32s

------------源文件在下面----------------
源: 微信公众号文章下载器_源文件.rar (2.81 MB, 下载次数: 817)

如有违规请版主帮忙删除,谢谢。

免费评分

参与人数 211吾爱币 +198 热心值 +193 收起 理由
txdonefu + 1 + 1 我很赞同!
Jayden-Zhu + 1 + 1 热心回复!
萧凌敬 + 1 谢谢@Thanks!
万寒麟 + 1 谢谢@Thanks!
舜之后 + 1 + 1 我很赞同!
malio9950 + 1 + 1 谢谢@Thanks!
zhangyoung + 1 我很赞同!
shubaowang + 1 + 1 用心讨论,共获提升!
wapj101 + 1 + 1 我很赞同!
qiujunjian1 + 1 + 1 谢谢@Thanks!
Alex_107 + 1 + 1 谢谢@Thanks!
大江东去水悠悠 + 1 + 1 谢谢@Thanks!
永远的魔力 + 1 + 1 谢谢@Thanks!
非墨不白 + 1 + 1 谢谢@Thanks!
seedcat + 1 + 1 热心回复!
heimianbao + 1 + 1 谢谢@Thanks!
wuqing89403 + 1 + 1 谢谢@Thanks!
aikexue + 1 + 1 用心讨论,共获提升!
李万金 + 1 + 1 「花似伊,柳似伊。花柳青春人别离」1Y6lq3/uDU9e。
木旦理 + 1 + 1 我很赞同!
七里xiang + 1 + 1 谢谢@Thanks!
一年又一年 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
蓝风 + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
云日山河 + 1 未能按照本版块发帖要求发帖,请仔细阅读本版块版规再发帖,谢谢理解!
汤姆和托尼 + 1 我很赞同!
ha0123 + 1 我很赞同!
xuq1981 + 1 + 1 谢谢@Thanks!
qinling072 + 2 + 1 我很赞同!
DPM-K + 1 + 1 谢谢@Thanks!
lfm333 + 1 + 1 谢谢@Thanks!
z_more + 1 + 1 热心回复!
MateX + 1 + 1 必须支持一波!!!
最初的习惯 + 1 + 1 谢谢@Thanks!
vnmaj + 1 谢谢@Thanks!
vonfly + 1 + 1 我很赞同!
wanjuny + 1 热心回复!
zhongyihaitun + 1 谢谢@Thanks!
yxpp + 1 + 1 谢谢@Thanks!
hercity + 1 + 1 老哥给力!
xushiyang + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
mengxiang12388 + 1 + 1 谢谢@Thanks!
fengwen18245 + 1 + 1 谢谢@Thanks!
hzwsuki + 1 + 1 谢谢@Thanks!
宾鹏博 + 1 + 1 谢谢@Thanks!
xyz2000cn007 + 1 + 1 热心回复!
故往啊 + 1 + 1 谢谢@Thanks!
策士 + 1 + 1 我很赞同!
hd7541346 + 1 + 1 谢谢@Thanks!
李艾克 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
webdawn + 1 + 1 我很赞同!
小地雷丶 + 1 + 1 谢谢@Thanks!
fuy56go + 1 + 1 我很赞同!
千叶壹竹 + 1 + 1 谢谢@Thanks!
freja + 1 谢谢 @Thanks!
江湖白晓灵 + 1 + 1 谢谢@Thanks!
tokisun + 1 我很赞同!
rebirthboy + 1 我很赞同!
liuyu000 + 1 + 1 热心回复!
I籽丶轩 + 1 用心讨论,共获提升!
swtt_smle + 1 + 1 用心讨论,共获提升!
card628 + 1 热心回复!
wuyongkui + 1 + 1 谢谢@Thanks!
tao2017 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
小kgg + 1 + 1 谢谢@Thanks!
zy870527 + 1 + 1 谢谢@Thanks!
Natu + 1 + 1 谢谢@Thanks!
greenmood + 1 我很赞同!
wanfen11 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
ADP720 + 1 + 1 谢谢@Thanks!
HarryPotter01 + 1 热心回复!
怜昕 + 1 + 1 我很赞同!
shilichun1982 + 1 + 1 我很赞同!
yzqgeorge + 1 + 1 谢谢@Thanks!
caleb110 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
我无聊路过1989 + 1 我很赞同!
GGY0ung + 1 我很赞同!
玄易 + 1 + 1 谢谢@Thanks!
WM715 + 1 + 1 谢谢@Thanks!
心随情走 + 1 + 1 热心回复!
jbdjbd432 + 1 + 1 用心讨论,共获提升!
dadao815 + 1 + 1 用心讨论,共获提升!
北冥鱼 + 1 我很赞同!
三北豆酥糖 + 1 + 1 谢谢@Thanks!
小单单大蛋蛋 + 1 保存在哪里?
安道尔的鱼 + 1 + 1 我很赞同!
xxppy + 1 + 1 谢谢@Thanks!
hdviva + 1 谢谢@Thanks!
why3316 + 1 + 1 谢谢@Thanks!
ltmy + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Khaos + 1 + 1 用心讨论,共获提升!
xyl52p + 1 + 1 谢谢@Thanks!
Yhy1334 + 1 我很赞同!
我是吉哥 + 1 + 1 https://www.aliyundrive.com/s/qzT5TcNFc2o
painstaking1 + 1 + 1 谢谢@Thanks!
meissen + 1 + 1 谢谢@Thanks!
zhczf + 1 + 1 我很赞同!
huangxc505 + 1 我很赞同!
梦ll晨 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
snowing + 1 谢谢@Thanks!
felixyuan + 1 鼓励转贴优秀软件安全工具和文档!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

来自 2#
 楼主| ingdear 发表于 2022-6-23 09:25 |楼主


一些问得比较多的问题,统一回复下:


关于留言的,我有一版是带下载留言的,不过那个都是保存到数据库,还是JSON格式,没有解析,没有添加到文章的HTML中,这个公布出来用处也不大。

图片的话,暂时还没考虑,如果会的也是下载文件吧。用base64这种嵌入到文章中,感觉那个文件会比较大。

开源其实就是想看有没有大佬需要这些功能,然后开发出来,再共享,这样就省事了。

推荐
小雄呐 发表于 2022-6-20 16:11
咱就是不知道,获取完以后,文章保存在哪个路径了,谢谢。
推荐
XZ1314XZ 发表于 2022-6-22 00:36
跟wechatdownload那样就完美了,那个功能很全,但是也不更了,并且容易卡死。楼主这个也不错,但是也有不少同质化的,目前除了wechatdownload也找不到其他有带留言保存的,主要就是也需要微信ck,也有时效,还有既然保存还是图片转base64最好,不然保存了也没用,文章没了,图片一样没
推荐
 楼主| ingdear 发表于 2022-6-24 09:13 |楼主
joe377 发表于 2022-6-23 22:36
谢谢大婶,问一下保存的文章默认是哪个文件夹里?



看下这张图片,保存在软件目录下,以公众号命名的一个文件夹。文件创建的时间如下:

ok那块是把文章链接保存到数据库,这个时候还没有下载文章,所以没有文件夹

只有到了 success:XXXXXX  获取文章成功    这个提示的时候,才开始保存文章,创建文件夹。

所以要先等 ok那块全部获取完后,才会创建文件夹。
推荐
zxxiaopi 发表于 2022-6-20 16:21
用不到,但支持
8#
a2523188267 发表于 2022-6-20 15:54
感谢楼主分享,厉害的大神
9#
shouge1122 发表于 2022-6-20 15:55
这个是非常好的功能,谢谢啦
10#
蛛蛛强 发表于 2022-6-20 16:01
评分用完了,直接来评论吧,好东西,真不错,感谢楼主
11#
dongse 发表于 2022-6-20 16:07
谢楼主分享,膜拜大神
12#
advancejar 发表于 2022-6-20 16:17
不错不错,感谢你的分享
13#
心有所向 发表于 2022-6-20 16:19
我有个问题,获取成功的文章在哪里查看呀?
14#
dygrlhw 发表于 2022-6-20 16:22
膜拜大神
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 提醒:禁止复制他人回复等『恶意灌水』行为,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2022-6-27 04:01

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表