有的时候,我们会发现收藏的某个微信公众号文章会被删或者和谐了,尤其是对自己非常实用的文章,一定会后悔当初怎么没有复制或者备份下来。

单篇的公众号文章要备份,随便百度一下就能找到非常多方法,这里就不多废话了。

如果要备份某个公众号的所有文章,这个就要费点功夫了。网上搜索了一下,免费付费的工具都有,评论效果也是不一而论,不好说。

其实原理比较说起来还是不难的,今天永恒君就来分享一下备份某个公众号的所有文章的思路方法。

以公众号永恒君的百宝箱为例了,原理是大致是这样的:

  • 抓包抓取微信客户端的接口

  • 使用Python请求微信接口获取公众号文章链接并下载

1、抓包抓取微信客户端的接口

常见的抓包工具有Fiddler,charles等等,永恒君这里用的是charles。

使用之前需要先进行一系列的配置,安装证书,添加域名和host。否则获取不到https接口数据,显示unknown。详细的配置方法可参考这里

配置好后启动,打开微信客户端找到公众号,进入文章列表可以看到发过的文章。

这样可以抓取到公众号文章接口数据了。

公众号文章的接口地址如下:

/mp/profile_ext?action=getmsg&__biz=MzIzMTU2OTkwOQ==&f=json&offset=10&count=10&is_ok=1&scene=124&uin=MzY0MDY1OTU1&key=61633b3e6808122f2a8e656cab84fa561b091de04bff962f725a959bf7d4e91507cf2f369f5dd89c9346abc8a415882fc2a13b51777dc54fba05e79c2346af8c872d619e7b10b27d515745b96d3ddd0f5fb09083f3bba38b8814be5cd32ab159d4964f299b988d29e1fbbe15ae2aa9f3a572392a143c354ba86df0d29414a0ee

参数比较多,其中有用的参数为:

__biz 是用户和公众号之间的唯一id
uin是用户的id,这个是不变的
key 是请求的秘钥,一段时间就会失效
offset 是偏移量
count 是每次请求的条数

通过上面的请求,就可以获取公众号文章的信息了,包括文章标题titile、文章地址content_url、阅读原文地址source_url、封面cover、作者author,抓取这些就行了。

2、使用Python请求微信接口获取公众号文章链接并下载

有了上面的接口参数,就可以开始用Python请求获取文章信息了。

这里只抓取永恒君署名的原创文章,公众号一共有大约230多篇原创,生成HTML文件3分钟就全部下载下来了。

用浏览器打开就能看。

但是有个问题,html文件里面的图片需要联网才能进行查看

所以永恒君把html文章再用python导出成PDF文档。

导出PDF用的工具是wkhtmltopdf,这里特别说一下,这个工具需要先下载安装 wkhtmltopdf。

接着Python中安装pdfkit库,调用wkhtmltopdf就可以了。

因为需要联网获取图片,因此生成PDF会比较慢,耐心等待几十分钟之后,PDF文件也全部生成了。

PDF也可以用浏览器直接打开,比如这篇 这个统计家庭人口的公式有点厉害了~~~

如果觉得PDF文件数量太多了,也可以借助pdf合并软件,将所有的pdf合并成单独的合集,目录就以每个文件名命名,方便查找。

这样就完美的把我公众号的所有文章下载到本地了,有HTML和PDF格式。

以上获取文章的代码写的很简陋,还没有做优化,不太方便分享出来,怕误导大家。有需要的话可以联系我帮忙下载公众号文章。

欢迎交流!

一键备份公众号的所有文章到PDF,再也不用担心想看的文章被删了的更多相关文章

  1. 【阿里云产品公测】离线归档OAS,再也不用担心备份空间了

    [阿里云产品公测]离线归档OAS,再也不用担心备份空间了 作者:阿里云用户莫须有3i 1 起步  1.1 初识OAS  啥是OAS,请看官方说明: 引用: 开放归档服务(Open Archive Se ...

  2. 微信H5页面内实现一键关注公众号

    H5页面内实现关注公众号的微信JSSDK没有相关接口开放,因此就得动点脑筋来实现该功能了.下面的方法就是通过一种非常蹊跷的方式实现的. 首先,需要在公众号内发表一篇原创文章,注意是原创文章,然后由另一 ...

  3. 一键部署mono 免费空间支持ASP.NET MVC 再也不担心伙食费换空间了

    一直以来 部署mono 都是很头疼的事情 因为是我在是不熟悉非win环境,今天偶然发现这个项目,挺好的,分享下 https://github.com/wshearn/openshift-communi ...

  4. 此博客不更新文章,请到www.xiaoxiangyucuo.com看最新文章

    请到www.xiaoxiangyucuo.com看更多资料,包括Linux,JavaScript,Python,MySQL,PHP,HTML,Photoshop,以及各类软件下载. 希望大家支持,提出 ...

  5. 微信公众号开发C#系列-4、获取接口调用凭证

    概述 获取接口调用凭证实质就是获取access_token.在微信接口开发中,许多服务的使用都离不开Access Token,Access Token相当于打开这些服务的钥匙,正常情况下会在7200秒 ...

  6. 我推荐阅读的微信公众号-IT类

    微信,正深刻影响着我们的生活,每个使用微信的人,从微信这个窗口去了解这个世界. 微信公众号,微信生态圈是核心功能之一,每天都有大量的文章创作.传播.转发出来,海量的信息扑面而来,微信阅读成为微信使用者 ...

  7. 新增线下、APP、公众号多处入口,小程序会再火起来么?

    现在,大多数互联网创业者最缺的是流量,第二缺的是钱.之前开发者们追捧小程序的重要原因就是在于认为这可能是下一个微信公众号体量的流量入口,因为大家都想从微信的8亿多用户中收获自己的一部分用户. 近期部分 ...

  8. Java开发微信公众号(一)---初识微信公众号以及环境搭建

    ps:1.开发语言使用Java springMvc+Mybaits+spring maven实现 2.使用微信接口测试账号进行本地测试 https://mp.weixin.qq.com/debug/c ...

  9. 微信公众号开发C#系列-12、微信前端开发利器:WeUI

    1.前言 通过前面系列文章的学习与讲解,相信大家已经对微信的开发有了一个全新的认识.后端基本能够基于盛派的第三方sdk搞定大部分事宜,剩下的就是前端了.关于手机端的浏览器的兼容性问题相信一直是开发者们 ...

随机推荐

  1. Skywalking-02:如何写一个Skywalking trace插件

    如何写一个Skywalking trace插件 javaagent 原理 美团技术团队-Java 动态调试技术原理及实践 类图 实现 ConsumeMessageConcurrentlyInstrum ...

  2. 【阅读笔记】Java核心技术卷一 #0

    这是一篇备忘性质的读书笔记,仅记录个人觉得有用的知识点 本文作为一个目录索引,部分章节跳过 吐槽:此书中文翻译有不少地方不太通顺,这种情况我要把英文版对应的部分也读一遍才能明白(说实话,英文里的从句表 ...

  3. java小游戏java九宫格

    问题来源于吾爱破解https://www.52pojie.cn/thread-1484202-1-1.html 编程目标一:根据下面的"游戏说明",实现该游戏程序,完成响应用户的输 ...

  4. Session与Cookie的原理以及使用小案例>从零开始学JAVA系列

    目录 Session与Cookie的原理以及使用小案例 Cookie和Session所解决的问题 Session与Cookie的原理 Cookie的原理 Cookie的失效时机 小提示 Session ...

  5. 自学linux——10.Linux的网络知识

    linux的网络知识 一.网络相关概述 1.网络的分类 局域网(LAN):在几百米到十几公里内办公楼群或校园内的计算机相互连接所构成的计算机网络 城域网(MAN):覆盖相距不远的几栋办公楼,也可以覆盖 ...

  6. vue的table切换

    HTML: <div id="box"> <ul> <li v-for="(item,index) in items" v-tex ...

  7. Java ParallelStream

    ParallelStream 处理数据 Stream 接口提供了parallelStream方法来将集合转换为并行流.即将一个集合分为多个数据块,并用不同的线程分别处理每个数据块的流. 并且使用par ...

  8. SaToken学习笔记-03

    SaToken学习笔记-03 如果排版有问题,请点击:传送门 核心思想 所谓权限验证,验证的核心就是一个账号是否拥有一个权限码 有,就让你通过.没有?那么禁止访问! 再往底了说,就是每个账号都会拥有一 ...

  9. JVM学习笔记-第七章-虚拟机类加载机制

    JVM学习笔记-第七章-虚拟机类加载机制 7.1 概述 Java虚拟机描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被 ...

  10. 【原创】Java内存攻击技术漫谈

    前言 Java技术栈漏洞目前业已是web安全领域的主流战场,随着IPS.RASP等防御系统的更新迭代,Java攻防交战阵地已经从磁盘升级到了内存里面. 在今年7月份上海银针安全沙龙上,我分享了< ...