好的,又是愉快的周二写(shui)推送时间了~
相信很多小伙伴应该看过/实现过把廖雪峰网站的教程转换成PDF电子书吧,毕竟网上一搜一大把类似的教程。作为拥有大量优质文章的知乎专栏,我们是不是也可以依样画葫芦地来对它搞点事情呢?当然可以啦!今天我就带大家利用Python将知乎专栏文章转为PDF电子书。
让我们愉快地开始吧~
开发工具
Python版本:
3.6.4相关模块:
pdfkit模块;
argparse模块;
requests模块;
bs模块;
以及一些Python自带的模块。
其他工具:
wkhtmltopdf
环境搭建
python环境:
安装Python并添加到环境变量,pip安装需要的相关模块即可。
wkhtmltopdf环境:
先到官网下载该软件的安装包并安装该软件,软件下载地址为:
https://wkhtmltopdf.org/downloads.html
例如我下载的是下图红色框框出的版本:
OK,大功告成~
运行方式(cmd窗口):
python zl2pdf.py -u 知乎专栏地址
效果如下:
PS:
因为自己的知乎一直没开过专栏,所以拿别人的专栏测试的。代码仅供学习交流。
原理简介
原理其实很简单,主要分三步。
第一步,
提取专栏所有文章的链接和其他必要的信息(例如文章标题)。简单抓包可以发现专栏所有文章的链接可以通过有规律地请求下图所示的链接获取(就是不断改变链接中的offset值):
代码实现如下:
第二步,
根据爬取到的所有文章的链接地址将文章从对应的网页中提取出来并保存为html文件:
代码实现如下:
第三步,
将保存的HTML文件转为PDF即可。代码实现如下: