微信公众号的文章太多了,有导出微信公众号文章需求的也不少,有的人为了方便查看,有的人为了存档,有的人会打印,甚至有不厚道的人会拿去当素材二次创作。
为了能批量保存我还真想了一堆的办法,先啰嗦一下,因为在摸索的过程中我摸到了许多微信的禁区,即明确了什么路是走不通的,这无疑也会帮到许多后来者,当然嫌麻烦的同学可以跳过斜体字部分直接下载软件
我曾经试过一个办法:按键精灵模拟打开电脑版微里面的文章,然后右键打印为PDF,保存,甚至我连保存的文件名是文章的标题都已经实现了。可是有许多坑爹的地方:
先说最大的一个坑:文章中的图片是懒加载的,也就是你只有滑动到要显示图片的位置他才会现从服务器下载,而不会提前下载,这样问题就来了:按键精灵得模拟人工去滑动网页,还不能滑得太快了,太快了图片会下载不过来,太慢了又太浪费时间,还得判断什么时候是已经滑到最下方了,即使这样你也不能保证所有的图片都已经下载成功了,谁知道微信会不会在哪个地方卡一下。
再比如有的号会有纯文字消息,有的号会有图片消息,特别是文字消息不好通过模拟按键去准确保存全部啊。另外这种消息会使得每条文章所占的长度无法统一,你不知道这次保存的和下次保存的是同一篇,还是漏了一篇。后来好不容易把这个问题给搞定了,发现保存列表最前面的几条文章还好说,可是保存到早一点的文章时会遇到微信刷新特别慢特别容易卡顿的问题,而我们又无法预见会怎么卡顿,经常会卡住。
而且,这种机械式频繁刷文章的形式极易被微信检查出来你是在自动刷新,从而直接限制你打开网页,也就是俗称的“关小黑屋24小时”。
后来优化了一下思路跟大家分享下:文章列表是通过https协议传输的,这个可以通过工具抓到原始数据,于是就有了原始链接,把链接保存到数据库或txt中都可以,其实有了原始链接就帮许多非入门菜鸟解决了最关键的步骤。当然了想从理论打通到实际跑通程序中间还需要经过几个环节,比如需要注意图片的下载,网上有许多办法如果你照搬的话是下不到图片的,需要花心思研究一下。这一步时为了加快速度可以采用多线程,但是看清了只是下一篇文章中的多张图片时可以多线程,爬多篇文章可别多线程,很容易被封的。
当然了以上讲的都是程序员思维,我们还应该有客户思维。即客户想要的是:一键批量导出微信公众号所有历史文章。而不上面那一堆他看不懂的技术分析。
即客户需要这样一个软件:我只需要告诉他我要保存的公众号的名字,然后它自己就自动把所有的文章全部保存下来的。
很荣幸,这样的软件我已经做出来了xiaokuake.com 它的最大特点就是:你想要的都能抓取出来,包括图片文字、阅读数点赞数、留言等全方位的信息。它的第二大特点就是:傻瓜化操作,只要能看得懂说明书会点鼠标就会使用。如果说有第三大特点的话那就是:用了停不下来,哈哈哈。
最后不多说,直接上图。