python打印pdf文件_python pdfkit 将网页django2.0教程内容打印成pdf文档

python pdfkit 将网页django2.0教程内容打印成pdf文档

最近在学习django2.0,把杜赛大佬的django2.0网页教程打印成pdf文档 方便学习!

感谢大佬的分享!

# -*- 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://www.dusaiphoto.com/article/detail/2/"

list_url = [url,]

html=requests.get(url).content.decode('utf-8')

con=re.findall(r'

(.+?)
',html,re.S)[0]

listurls=re.findall(r'

.+?

for listurl in listurls:

listurl=f'https://www.dusaiphoto.com{listurl}'

list_url.append(listurl)

print(list_url)

return list_url

#获取正文内容

def get_content(url):

#url='https://www.dusaiphoto.com/article/detail/4/'

html=requests.get(url).content.decode('utf-8')

content=re.findall(r'

(.+?)
',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,'


')

dypdf(contents)

附:django2.0教程pdf文档

wkhtmltopdf,这个工具的下载网站是:wkhtmltopdf

代码中,confg = pdfkit.configuration(wkhtmltopdf=r’C:\Users\Administrator\AppData\Local\Programs\Python\Python37\wkhtmltox\bin\wkhtmltopdf.exe’)

wkhtmltopdf=更换为你自己的包目录!

参考以下教程:

我们看到一些比较写的比较好文章或者博客的时候,想保存下来到本地当一个pdf文件,当做自己的知识储备,以后即使这个博客或者文章的连接不存在了,或者被删掉,咱们自己也还有。

当然咱们作为一个coder,这样的事情肯定不能手动保存下来然后再转成pdf存起来对不对,有失咱们码农的身份,当然要自动化的来实现了~

准备工作

那怎么办呢,python里面有个模块是pdfkit,他可以帮咱们把一个html(也就是一个网页)变成一个pdf文件。

上面说到了pdfkit这个模块,这个是第三方模块,需要安装,使用pip安装即可。

1

pip install pdfkit

写代码实现

pdfkit它给咱们提供了很多功能,可以给它一个url,他会自动获取url里面的内容,帮你保存好,也可以给他一个html文件,也可以保存,也可以给他一个字符串,也可以保存成pdf,

import pdfkit

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的路径

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值