使用python将在线电子书转成pdf

本文介绍了如何使用Python将在线电子书转换为PDF。首先,确保安装了requests、bs4和pdfkit库,以及转换工具wkhtmltopdf。接着,通过分析网页元素获取所有书页URL,并检查链接有效性。然后,提取正文内容并生成HTML,经过手动微调去除特殊标记,最终生成PDF文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、环境准备

    重要事情卸载最前面,代码中出现的一些encoding='utf-8',是必须的,没有这个设定中文会出现乱码。安装requests、bs4和pdfkit的python第三方库,到https://wkhtmltopdf.org/downloads.html下载转换工具。依据自己的系统和python 的版本进行下载安装,在widows平台还需要将安装路径中的bin目录路径添加到环境变量。

    以一本书作为例子说明,其他的电子书也可以使用类似的操作方式,不同页面的构成不一样,要根据特定页面进行分析。个人感觉使用正则去匹配网页的内容会比较科学,奈何不会正则。

2、分析网页元素,类似爬虫的操作

导入的库和其他变量定义

import pdfkit
import requests
from bs4 import BeautifulSoup
url = 'http://python3-cookbook.readthedocs.io/zh_CN/latest/'
wb_data = requests.get(url)
wb_data.encoding = 'utf-8'

all_urls = []

第一步找到所有书页的url,保存到一个list

if wb_data.ok:
    soup = BeautifulSoup(wb_data.text,'html.parser')
    div = soup.select('.toctree-l2')
    for i in div:
        temp_url = i.contents[0]['href']
        if '#' in temp_url:
            if temp_url.split('#')[0] not in all_urls:
                all_urls.append(temp_url.split('#')[0])
        e
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值