一键备份公众号的所有文章到PDF,再也不用担心想看的文章被删了
有的时候,我们会发现收藏的某个微信公众号文章会被删或者和谐了,尤其是对自己非常实用的文章,一定会后悔当初怎么没有复制或者备份下来。
单篇的公众号文章要备份,随便百度一下就能找到非常多方法,这里就不多废话了。
如果要备份某个公众号的所有文章,这个就要费点功夫了。网上搜索了一下,免费付费的工具都有,评论效果也是不一而论,不好说。
其实原理比较说起来还是不难的,今天永恒君就来分享一下备份某个公众号的所有文章的思路方法。
以公众号永恒君的百宝箱为例了,原理是大致是这样的:
抓包抓取微信客户端的接口
使用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,再也不用担心想看的文章被删了的更多相关文章
- 【阿里云产品公测】离线归档OAS,再也不用担心备份空间了
[阿里云产品公测]离线归档OAS,再也不用担心备份空间了 作者:阿里云用户莫须有3i 1 起步 1.1 初识OAS 啥是OAS,请看官方说明: 引用: 开放归档服务(Open Archive Se ...
- 微信H5页面内实现一键关注公众号
H5页面内实现关注公众号的微信JSSDK没有相关接口开放,因此就得动点脑筋来实现该功能了.下面的方法就是通过一种非常蹊跷的方式实现的. 首先,需要在公众号内发表一篇原创文章,注意是原创文章,然后由另一 ...
- 一键部署mono 免费空间支持ASP.NET MVC 再也不担心伙食费换空间了
一直以来 部署mono 都是很头疼的事情 因为是我在是不熟悉非win环境,今天偶然发现这个项目,挺好的,分享下 https://github.com/wshearn/openshift-communi ...
- 此博客不更新文章,请到www.xiaoxiangyucuo.com看最新文章
请到www.xiaoxiangyucuo.com看更多资料,包括Linux,JavaScript,Python,MySQL,PHP,HTML,Photoshop,以及各类软件下载. 希望大家支持,提出 ...
- 微信公众号开发C#系列-4、获取接口调用凭证
概述 获取接口调用凭证实质就是获取access_token.在微信接口开发中,许多服务的使用都离不开Access Token,Access Token相当于打开这些服务的钥匙,正常情况下会在7200秒 ...
- 我推荐阅读的微信公众号-IT类
微信,正深刻影响着我们的生活,每个使用微信的人,从微信这个窗口去了解这个世界. 微信公众号,微信生态圈是核心功能之一,每天都有大量的文章创作.传播.转发出来,海量的信息扑面而来,微信阅读成为微信使用者 ...
- 新增线下、APP、公众号多处入口,小程序会再火起来么?
现在,大多数互联网创业者最缺的是流量,第二缺的是钱.之前开发者们追捧小程序的重要原因就是在于认为这可能是下一个微信公众号体量的流量入口,因为大家都想从微信的8亿多用户中收获自己的一部分用户. 近期部分 ...
- Java开发微信公众号(一)---初识微信公众号以及环境搭建
ps:1.开发语言使用Java springMvc+Mybaits+spring maven实现 2.使用微信接口测试账号进行本地测试 https://mp.weixin.qq.com/debug/c ...
- 微信公众号开发C#系列-12、微信前端开发利器:WeUI
1.前言 通过前面系列文章的学习与讲解,相信大家已经对微信的开发有了一个全新的认识.后端基本能够基于盛派的第三方sdk搞定大部分事宜,剩下的就是前端了.关于手机端的浏览器的兼容性问题相信一直是开发者们 ...
随机推荐
- odoo中接口开发
文章参考:https://blog.csdn.net/qq_33472765/article/details/81913627案例0000001接口调用请求说明:https请求方式:GET(请使用ht ...
- 微信小程序创建第一个项目
一.打开微信开发者工具,扫码登录 二.点击右侧的加号,添加小程序 第三步:创建成功后,报错 VM82:1 cloud init error: Error: invalid scope 没有权限,请先开 ...
- list实现从大到小排序
public static void main(String[] args) { List<Integer> list=new ArrayList<Integer>(); // ...
- 当鼠标移入div上时,div的背景色在4s之内渐变为灰色,同时在5s之内顺时针旋转45度,且尺寸缩小一半;当鼠标移走时,再渐变恢复初始样式
<style> #d1{ width:200px; height:200px; border:1px solid #000; transition:background 4s linear ...
- python算法(2)兔子产子(斐波那切数列)
兔子产子 1.问题描述 有一对兔子,从出生后的第3个月起每个月都生一对兔子.小兔子长到第3个月后每个月又生一对兔子,假设所有的兔子都不死,问30个月内每个月的兔子总对数为多少? 2.问题分析 兔子产子 ...
- 关于在iar+j-link上的坑坑洼洼
引言 iar版本为8.32,j-link驱动版本为4.34,对应的是stm32 ARM cortex-m3 ,文末有本文的软件和工具,以及需要的文件的链接(免费) 第一坑:iar注册机不能注册iar9 ...
- vulnhub靶机-XXE Lab 1
目录 信息收集 漏洞利用 信息收集 扫描目标主机,ip为192.168.88.154 nmap扫描结果 存在robots.txt文件.直接访问其中的admin.php显示404,加一层目录访问/xxe ...
- 靶机DC-2 rbash绕过+git提权
这个靶机和DC-1一样,一共5个flag.全部拿到通关. root@kali:/home/kali# nmap -sP 192.168.1.* 先扫一下靶机的IP地址,拿到靶机的地址为192.168. ...
- MySQL-11-存储引擎
存储引擎简单介绍 存储引擎:相当于Linux文件系统,只不过比文件系统强大 功能 数据读写 数据安全和一致性 提高性能 热备份 自动故障恢复 高可用方面支持 存储引擎种类 InnoDB MyISAM ...
- 轻松上手SpringBoot+SpringSecurity+JWT实RESTfulAPI权限控制实战
前言 我们知道在项目开发中,后台开发权限认证是非常重要的,springboot 中常用熟悉的权限认证框架有,shiro,还有就是springboot 全家桶的 security当然他们各有各的好处,但 ...