pytho pdfkit 将网页django2.0教程内容打印成pdf文档
最近在学习django2.0,把杜赛大佬的django2.0网页教程打印成pdf文档 方便学习! https://HdhCmsTestdusaiphoto测试数据/article/detail/2/ 感谢大佬的分享!
# -*- coding: UTF-8 -*- import pdfkit import requests from lxml import etree import re confg = pdfkit.configuration(wkhtmltopdf=r'C:\Users\Administrator\AppData\Local\Programs\Python\Python37\wkhtmltox\bin\wkhtmltopdf.exe') #获取链接 def get_listurl(): url="https://HdhCmsTestdusaiphoto测试数据/article/detail/2/" list_url = [url,] html=requests.get(url).content.decode('utf-8') con=re.findall(r'<div class="card-text" style="overflow: hidden">(.+?)<div class="container-fluid">',html,re.S)[0] listurls=re.findall(r'<p class="mb-0">.+?<a href="(.+?)".+?style="color: #b8b8b8;"',con,re.S) for listurl in listurls: listurl=f'https://HdhCmsTestdusaiphoto测试数据{listurl}' list_url.append(listurl) print(list_url) return list_url #获取正文内容 def get_content(url): #url='https://HdhCmsTestdusaiphoto测试数据/article/detail/4/' html=requests.get(url).content.decode('utf-8') content=re.findall(r'<div class="mt-4">(.+?)<div class="mt-4 mb-4">',html,re.S)[0] return content def dypdf(contents): contents=etree.HTML(contents) s = etree.tostring(contents).decode() print("开始打印内容!") pdfkit.from_string(s, r'out.pdf',configuration=confg) print("打印保存成功!") if __name__ == '__main__': contents='' urls=get_listurl() for url in urls: print(url) content=get_content(url) contents='%s%s%s'%(contents,content,'<p><br><p>') dypdf(contents)
附:django2.0教程pdf文档 链接: https://pan.baidu测试数据/s/1HM7_tEqcPk3h2ffZiYV17Q 提取码: udpi
wkhtmltopdf,这个工具的下载网站是:https://wkhtmltopdf.org/downloads.html
代码中,confg = pdfkit.configuration(wkhtmltopdf=r’C:\Users\Administrator\AppData\Local\Programs\Python\Python37\wkhtmltox\bin\wkhtmltopdf.exe’) wkhtmltopdf=更换为你自己的包目录!
参考以下教程:
使用python把html网页转成pdf文件 https://HdhCmsTestcnblogs测试数据/xiaowenshu/p/9916719.html
我们看到一些比较写的比较好文章或者博客的时候,想保存下来到本地当一个pdf文件,当做自己的知识储备,以后即使这个博客或者文章的连接不存在了,或者被删掉,咱们自己也还有。
当然咱们作为一个coder,这样的事情肯定不能手动保存下来然后再转成pdf存起来对不对,有失咱们码农的身份,当然要自动化的来实现了~
准备工作
那怎么办呢,python里面有个模块是pdfkit,他可以帮咱们把一个html(也就是一个网页)变成一个pdf文件。
pdfkit是python对wkhtmltopdf这个把网页转成pdf工具的一个封装,所以咱们必须得先安装一个wkhtmltopdf,这个工具的下载网站是:https://wkhtmltopdf.org/downloads.html,根据自己的操作系统下载对应的版本即可。ps:这里要记住安装目录啊,下面要用到它,不要忘记它的安装目录~
上面说到了pdfkit这个模块,这个是第三方模块,需要安装,使用pip安装即可。
1 pip install pdfkit
写代码实现
pdfkit它给咱们提供了很多功能,可以给它一个url,他会自动获取url里面的内容,帮你保存好,也可以给他一个html文件,也可以保存,也可以给他一个字符串,也可以保存成pdf, import pdfkit
url=‘https://HdhCmsTestcnblogs测试数据/sriba/p/8043294.html’#一篇博客的url confg = pdfkit.configuration(wkhtmltopdf=‘C:\Python35\wkhtmltopdf.exe’) #这里指定一下wkhtmltopdf的路径,这就是我为啥在前面让记住这个路径 pdfkit.from_url(url, ‘jmeter_下载文件.pdf’,configuration=confg)
from_url这个函数是从url里面获取内容
这有3个参数,第一个是url,第二个是文件名,第三个就是khtmltopdf的路径
#pdfkit.from_file(‘my.html’, ‘jmeter_下载文件2.pdf’,configuration=confg)
from_file这个函数是从文件里面获取内容
这有3个参数,第一个是一个html文件,第二个是文生成的pdf的名字,第三个就是khtmltopdf的路径
html=’’’
title
content
'''#这个html是我从一个页面上拷下来的一段,也可以#pdfkit.from_string(html, ‘jmeter_下载文件3.pdf’,configuration=confg)
from_file这个函数是从一个字符串里面获取内容
这有3个参数,第一个是一个字符串,第二个是文生成的pdf的名字,第三个就是khtmltopdf的路径
下面是保存好的pdf文件,是不是很简单,快去试试吧
来源:小文叔
查看更多关于pytho pdfkit 将网页django2.0教程内容打印成pdf文档的详细内容...