1.动机
对于知乎的一些高知大V,他们的回答总是那么具有说服力,通过阅读他们的回答,了解他们对热点事件的分析方式,通过现象看本质,一不至于被带节奏,二增加自己的知识面。多读多看,大有裨益。那如果在网络信号不太好或不舍得太多流量的情况下(穷),能够翻看他们的回答就太好了。
本篇介绍一下如何把”恶喵的奶爸“知乎回答页全部下载下来并保存为一个PDF。
1.1.分析
实现方式一,获取全部HTML源代码,将多个HTML文件合成一个HTML文件,将最后合成的这个文件保存为PDF。
实现方式二,将单个HTML文件保存为PDF,再将多个PDF合成一个。
经分析,后者更容易实现。
在正式爬之前,多做一些本地的测试,在本地能够行得通,再去骚扰目标网站。这样做的目的,一是不让网站运营者恶心;二是节约自己的时间和精力,因为大型网站大多有自己的反爬措施,频繁骚扰两三次,ip就被封了,那还要考虑换ip等一系列问题。
2.将本地HTML保存为PDF文件
先用selenium访问以下目标网站,将源代码保存到本地HTML,然后用本地的HTML做测试。
# -*- coding: utf-8 -*-
# @AuThor : frank_lee
import pdfkit
htmlfile = open("zhihu_answer.html", 'r', encoding='utf-8')
confg = pdfkit.configuration(wkhtmltopdf=r'D:\htmlpdf\wkhtmltopdf\bin\wkhtmltopdf.exe')
pdfkit.from_url(htmlfile, 'zhihu.pdf', configuration=confg)
2.1.上面代码能够正常执行的先决条件--安装wkhtmltopdf、pdfkit
根据自己的操作系统下载对应的版本即可。安装完成后可以将其加入到环境变量中,也可以不加入,但每次使用时需要调用wkhtmltopdf.exe的绝对路径。
2.2.2.安装pdfkit模块
pip install pdfkit
3.将一个本地HTML文件保存为多个PDF文件
import pdfkit
import time
i = 0
while i < 4:
# pdfname = "zhihu{}".format(i)+".pdf"
htmlfile = open("zhihu_answer.html", 'r', encoding='utf-8')
confg = pdfkit.configuration(wkhtmltopdf=r'D:\htmlpdf\wkhtmltopdf\bin\wkhtmltopdf.exe')