分享一个我写的用 Python 批量下载微信公众号文章的开源项目

2019-08-12 20:55:00 +08:00
 explorer123
有的微信公众号文章很多,如果能批量下载下来会方便很多,我花时间做了些研究,有些小心得,想到可能有别的朋友也需要,就开源出来吧,我 python 水平一般,努力从小白的角度教大家怎么去理解和使用这个工具。
第一次做开源项目,想通过这个项目多认识些朋友,请大家多提提意见,谢谢啦。
https://github.com/LeLe86/vWeChatCrawl
5600 次点击
所在节点    Python
30 条回复
hugee
2019-08-12 21:07:14 +08:00
怎么处理反爬 验证码?
explorer123
2019-08-12 21:11:08 +08:00
@hugee 此项目从头到尾不涉及验证码问题。
omph
2019-08-12 21:34:21 +08:00
虽然主要靠手动操作,程序只做了分析功能,但能用,多谢!
我研究过 mitmproxy 的纯 python 方案,但好像证书出了问题,无法解析数据包
lau52y
2019-08-12 21:42:40 +08:00
能全部历史文章么
explorer123
2019-08-12 21:46:25 +08:00
@omph 客气了。我也考虑过既然是用 python 是否应该用 mitmproxy 而不用 Fiddler,研究了一下发现 mitmproxy 的设置比较繁琐,抓 Https 需要的设置步骤多,新手极易卡住,还是用 Fiddler 吧,虽然步骤多,但每一步都是点按钮而已,小白应该都能搞定。需要看我项目的应该新手居多,能用是第一位的。这是我暂时的想法哈,对不对的也可以和大家讨论下。
explorer123
2019-08-12 21:48:19 +08:00
@lau52y 不能我都不好意思发出来
lau52y
2019-08-12 21:56:06 +08:00
嗯,
lau52y
2019-08-12 21:59:40 +08:00
可以考虑下换 IP 的
explorer123
2019-08-12 22:09:07 +08:00
@lau52y 这个让用户自己考虑吧,不在我的主要考虑范围内。
我做这个项目的原则是:如果你想学习怎么用 python 去下载想要的数据,或者想简单操作之后下些资料自己学习,那我可以帮你,对这些人来说慢一点没关系,不必考虑换 IP 的事,加上了反而影响他们对主线技术的理解。
如果你想实现大规模很爽的甚至是肆无忌惮的下载,显然已经不是上面的 2 种范畴了,那自己去研究就好了。我最怕最怕的就是好不容易搞出一个很完备的方案却被一些不良分子直接拿这个去商用赚小白的钱,那我就成了给他人做嫁衣裳。
lau52y
2019-08-12 22:14:08 +08:00
确实,核心已经分享了,后面怎么做看用户自己能力了
yuanjunye
2019-08-12 22:24:49 +08:00
这种手动+自动的方式对我挺有用
不是程序员,但能够看懂简单代码中的一些简单语句,能够做些简单的改动自用
explorer123
2019-08-12 22:36:04 +08:00
@yuanjunye 嗯嗯,我最初想法就是让稍学过 python 的朋友能照着说明上手,先把结果跑出来了,他会更有兴趣和耐心去看源代码,而不是用高大上的讲解让新人看了想跑,哈哈。
abcde51111
2019-08-12 22:44:44 +08:00
mak 一下 最近在学 python 啃完视频再来研读代码 哈哈
omph
2019-08-13 08:25:06 +08:00
@explorer123 mitmproxy 能像 Fiddler 一样解析出数据吗?我试过没有成功,装了证书也看不到 https 流量
该怎么设置?
qwjhb
2019-08-13 09:00:31 +08:00
@omph 可以的啊

而且其实不用这么麻烦的 fiddler 抓一个访问后拿到 header,复制过去,就可以用 python 造请求了。先爬一遍历史文章列表,然后设好 sleep 一条一条爬就行。 用 mitmproxy 更方便,开着程序拿微信客户端浏览任意一个公众号文章,后台获取到请求的 header,都不用复制粘贴 直接跑就行。
joson1205
2019-08-13 09:22:06 +08:00
关键还是获取到后怎么用吧,不然没有意义.获取到的文章多数应该是转载吧,不知道有没有考虑文章排版的问题,超链接,图片,字体样式等等这些
encro
2019-08-13 09:22:45 +08:00
anyproxy 很好用啊
explorer123
2019-08-13 10:00:29 +08:00
@joson1205 排版不会乱,跟原文一样,公众号文章的 css 多数是内联的。
explorer123
2019-08-13 10:08:34 +08:00
@qwjhb
@encro
Fiddler Anyproxy Mitmproxy 肯定都可以,但 Fiddler 可以按几下鼠标就搞定,不需要写代码,对新人最友好。
抓 Header 模拟发送请求的方式确实对老手更友好效率更高。对新手的话,我想先放他们能理解的代码,让他们能看懂每一行代码。
qwjhb
2019-08-13 10:50:17 +08:00
@joson1205 获取到拿来卖=-=

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/591302

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX