知乎回答一键导出为PDF——Python实现

文章目录

  • 为什么做知乎回答的导出?
  • 实现环境
  • 源代码
  • PDF导出测试结果


为什么做知乎回答的导出?


“恰同学少年,风华正茂;

书生意气,挥斥方遒。

指点江山,激扬文字…”


知乎上总有许多令人眼前一亮、深入浅出的人类高质量回答,它们往往从读者少有或从未注意过的角度深入问题,从而引出新的观点。

遇到这种随时可能被折叠or删除的回答,收集癖怎么可能坐得住?!

于是花一晚上堆出了一段优雅而不失暴力的代码,用于实现知乎回答一键导出为PDF。


实现环境


CPU :Intel® Core™ i7-9750H CPU @ 2.60GHz

wkhtmltopdf安装位置 :N:\wkhtmltox\bin\wkhtmltopdf.exe

Windows :Win10 家庭版

PyCharm :2020.1.1 (Community Edition) Build #PC-201.7223.92, built on April 30, 2020

测试回答链接 :https://www.zhihu.com/question/463243373/answer/1983723459


源代码


由于急着用所以写的比较简陋,其中很多地方写的都十分暴力(例如“知乎图床重处理”部分就可以用BeautifulSoap库去实现等等),针对形如“https://www.zhihu.com/question/问题编号/answer/回答编号”可实现就行啦。

后续有空可能会加入多网址多线程解析导出PDF单问题所有高赞回答导出PDF收藏夹下所有回答导出PDF适用其他图文发布网站的解析导出等。

现存问题:图文排版可能出现问题、未做登录cookie、基本没啥robustness

来看代码实现吧:

# -*- coding: utf-8 -*-
"""
ZhihuCapture.py
@author: Felerdise
"""
# 无需多言的导入,其中time仅用于导出计时
import requests
import re
import pdfkit
import time
def GetZhiHuAnswer(url):
    # 浏览器标识设置为Chrome,有效去除冗余组件
    header = {
   
        "User-Agent": "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36"
    }
    r = requests.get(url, headers=header)
    r.encoding = 'utf-8'
    html = r.text

    # 去冗余:对html数据暴力处理
    # Answer中的大量冗余脚本
                    
                    

你可能感兴趣的:(好用的小工具,python,知乎网,html,chrome)