把知乎丁香医生的文章及回答转pdf

该博客介绍了如何利用Python的pdfkit库从知乎抓取文章和回答,将其转换成高质量的PDF文件。内容包括wkhtmltopdf工具的参数详解,如设置页眉、页脚、边距等,以及转换过程中的各种定制选项。
摘要由CSDN通过智能技术生成
之前爬取了1800多万的知乎用户,因而想生成pdf方便保存和阅读,正好试试wkhtmltopdf+pdfkit。
1:pdfkit是wkhtmltopdf的python封装,因此需要先下载安装wkhtmltopdf,版本wkhtmltopdf-0.12.2.4_mingw-w64,下载地址http://download.csdn.net/download/cainiaowuzui/10024376%20%E2%80%9Cwkhtmltopdf-0.12.2.4_mingw-w64%E2%80%9D 
2:使用pip install pdfkit安装pdfkit(版本0.6.1)
这里我选择把丁香医生的文章+回答按获赞数从高到低排序生成pdf。
pdfkit默认是生成带目录书签的pdf.由于内容存储在mongo数据库中,因此我先从mongo数据库中选取出来再通过pdfkit.from_string()生成pdf。
主要知识点:python,pdfkit,mongo,html,知乎爬取 
过程中遇到以下问题:
       1. 中文乱码,参数中须指定编码options={'encoding': 'utf-8'}
       2. pdf目录无法自动生成,经过试验,采用把字符串补成html格式的字符串,且输出文件指定为out.pdf,可以解决问题。
       3. 个别回答数据库中没有对应的提问标题,因此去知乎爬取对应的提问,有兴趣爬取知乎的朋友可以参考。
import pymongo
import os 
from bson.objectid import ObjectId
import wkhtmltopdf
import pdfkit
import requests
import json
client=pymongo.MongoClient(host="127.0.0.1")
db=client["zhihu"]
wkhtmltopdf_path='F:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe'#wkhtmltopdf的安装目录
def printpdf(url_token):
    cursor=db['article'].find({
  "url_token":url_token})
    article=list(cursor)
    article.sort(key=lambda k :k["voteup_count"],reverse=True)#按文章获赞的总数排序
    formatstr='''<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN" class=" no-touch">

<head>
    <meta charset="utf-8" />
    <title>{title}</title>
</head>

<body>
    <h1 align='center'>{title}</h1>{content}</body>

</html>

'''#补成html格式的字符串
    pdfstr=''
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值