python将html存为pdf_用Python将HTML转为PDF。

上期提到了如何获取公众号文章信息,这回就说下怎么将网页转为PDF,方便日常学习。html

而后扩散一下以前一个比赛的结果(华章计算机抖音大赛)。数据库

顺便谈谈本身对从此送书的一个想法。微信

另外以前的送书活动,有中奖的读者没有联系我,因此这回一并送出。app

明天还会送两本书,你们也能够关注一下。ide

/ 01 / HTML转PDF学习

主要用到的库有pdfkit及wkhtmltopdf。url

安装我就不说了,网上也是一堆教程,经过下面的代码也能略知一二。spa

须要注意的点就是,把网页转PDF的时候,须要将网页的图片下载下来,保存在本地。orm

而后生成网页时调用本地的图片,这样就不会出如今PDF中图片缺失的状况。htm

本次没有去设置详细的PDF参数,因此生成的PDF排版并非很友好,不过仍是能凑合看的。

具体转换代码以下。

import pandas as pd

import requests

import pdfkit

import os

import re

# 读取数据并清洗

df = pd.read_csv('article.csv', header=None, names=['title', 'digest', 'article_url', 'date'], encoding='gbk')

df['date'] = pd.to_datetime(df.date.values, unit='s', utc=True).tz_convert('Asia/Shanghai')

df_date = df['date'].astype(str).str.split(' ', expand=True)

df['day'] = df_date[0]

# 获取目录的绝对路径

fileDir = os.path.abspath(os.path.dirname('F:\\article_pdf'))

headers = {

"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 MicroMessenger/6.5.2.501 NetType/WIFI WindowsWechat QBCore/3.43.901.400 QQBrowser/9.0.2524.400",

}

proxies = {

"https": None,

"http": None,

}

# 设置转PDF参数

options = {

"page-size": "Letter",

"encoding": "UTF-8",

"custom-header": [

("Accept-Encoding", "gzip")

]

}

# 调用wkhtmltopdf

# confg = pdfkit.configuration(wkhtmltopdf=r"C:\Users\Administrator\wkhtmltox-0.12.5-1.mxe-cross-win64\wkhtmltox\bin\wkhtmltopdf.exe")

for title, url, date in zip(df['title'], df['article_url'], df['day']):

print(title, url, date)

# 替换特殊符号

title = re.sub('[\/::*?"<>|]', '', title)

title = title.replace('\\', '_')

# html文件名

html_name = '{}/{}.html'.format('F:\\article_pdf', date + '_' + title)

res = requests.get(url, headers=headers, proxies=proxies, timeout=3)

html = res.text

# 用?来控制正则贪婪和非贪婪匹配;(.*?) 小括号来控制是否包含匹配的关键字

pattern = re.compile(r'data-src=\"http.*?\"')

result = pattern.findall(html)

picCnt = 0

for i in result:

picCnt = picCnt + 1

url = re.findall(r'\"(.*?)\"', i)[0]

# 图片名

picture_name = '{}/{}.png'.format('F:\\article_pdf', str(picCnt))

# 调用本地图片

html = html.replace(url, picture_name)

# 获取图片内容

r = requests.get(url)

with open(picture_name, "wb+") as f:

f.write(r.content)

# 保存html文件

html = html.replace('data-src', 'src')

fd = open(html_name, 'w', encoding="utf-8")

fd.write(html)

fd.close()

pdf_name = '{}/{}.pdf'.format('F:\\article_pdf', date + '_' + title)

try:

# html转pdf

pdfkit.from_file(html_name, pdf_name, options=options)

except:

pass

最后成功生成全部文章的PDF。

70063fd712295964f17cc9f961bce233.png

这里不知是为什么,生成PDF的时间挺长的,平均一个PDF耗时三分钟。

/ 02 / 比赛结果

以前公众号对华章计算机抖音大赛进行了推广,在上个礼拜比赛的结果也出来了。

这里帮出版社扩散一下比赛结果。

华章计算机抖音大赛比赛结果

固然我也参加了,并且也获奖了,不过是参与奖,四本书。

2ebc814695d23568549977122b5c43ff.png

活动参与的人并很少,一共应该就只有8我的参赛。

讲道理,900元现金以及30本书,这么丰厚的奖品,活动却没多少人参加,这值得沉思。

固然还会有第二届,届时我还会帮忙宣传,这回没有参加的小伙伴,下回必定要抓住机会。

为何我会继续支持呢?这应该源于我以前参加的一个PPT比赛。

8a4f6eac907121bbfc74e7a9e822d26d.png

至今,我还留存着参与活动后的那本赠书。

7d448dd6e516005097902c7a8fbda060.png

书很不错,我也从中学到了很多东西。

固然最重要的是动手就有收获的道理。

种一棵树最好的时间是十年前,其次是如今。因此行动起来,绝对没错。

从此的送书活动,若是条件容许的话,也将会以一些小比赛的形式送出,敬请期待。

/ 03 /  送书

下面应该是上个礼拜的截图了,姑且就以此做为参照。

78d4557cddff08b392f0adcdd0ee8b5c.png

以上的读者,若是对下面这本书有兴趣的话。

能够微信联系我,先到先得,就一本。

微信联系方式能够在公众号菜单栏里找到。

9c94ca228f7ce79a57f7d7548c171c67.png

一本有关Oracle数据库的书。

明天送的两本是有关Python数据分析的书,能够关注一下。

/ 04 / 总结

两期的文章代码已上传「GitHub」。

点击左下角阅读原文,便可获取。

万水千山老是情,点个「在看」行不行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/343519.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SDH光端机和PDH光端机有什么区别?

通过之前的了解&#xff0c;我们都知道光端机有很多不同的分类&#xff0c;在这其中就有PDH光端机和SDH光端机&#xff0c;那么&#xff0c;PDH光端机和SDH光端机有什么区别&#xff1f;SDH光端机较PDH光端机相比有什么优势呢&#xff1f;接下来就由飞畅科技小编来为大家详细介…

【渝粤教育】国家开放大学2018年春季 0004-22T有机合成单元反应 参考试题

科目编号&#xff1a;0004 座位号&#xff1a; 2017-2018学年度第二学期期末考试 有机合成单元过程 2018年6月 一、选择题&#xff08;每小题3分&#xff0c;共45分&#xff09; 1.&#xff08; )是可以再生的自然资源。 煤 B.农副产品 C.石油 D.天然气 下列有机化合物中的&a…

【渝粤教育】国家开放大学2018年春季 0034-22T现代管理原理 参考试题

科目编号&#xff1a;0034 现代管理原理 试题 2018年7月 单项选择&#xff1a;&#xff08;每小题3分&#xff0c;共计30分&#xff09; 1&#xff0e;下列各选项中&#xff0c;( )属于管理的对象。 A&#xff0e;组织资源和组织目标 B&#xff0e;组织资源和组织活动 C&…

使用Gradle – 2019版从Travis可靠发布到Maven Central

得益于在2018年和2019年末实现的显式登台存储库创建功能集&#xff0c;使您&#xff08;自动&#xff09;从Travis&#xff08;不仅是&#xff09;发布到Maven Central更加可靠。 背景 如果您仅想获取信息&#xff0c;如何使您的工件从Travis发布更可靠&#xff0c;请前进到另…

spring admin mysql_easyadmin: 简易的java后台管理框架,基于SpringBoot+FreeMark+ace admin+mysql...

easyadmin数据库一定要用utf8mb4编码&#xff0c;记得先执行manager.sql&#xff0c;再执行initdata.sql,其中tenant表不用管&#xff0c;这是我打算做的另外一个项目设计的表&#xff0c;因为直接复制的本项目&#xff0c;怕到时候忘记&#xff0c;所以没有删除拦截器相关文档…

【渝粤教育】国家开放大学2018年春季 0050-21T民族理论与民族政策 参考试题

科目编号&#xff1a;0050 座位号 2017-2018学年度第二学期期末考试 民族理论与民族政策 试题 2018年 7 月 一、单项选择题&#xff08;在各题的备选答案中&#xff0c;只有1项是正确的&#xff0c;请将正确答案的序号&#xff0c;填写在题中的括号内。每小题2分&#xff0c;共…

SDI高清视频光端机特点有哪些?

SDI视频光端机设计和生产是适用于电视行业的高可靠、高性能的串行数字光传输设备&#xff0c;信号格式从19.4Mbps到1.485Gbps, 系统支持SMPTE292、SMPTE259M、SMPTE297M、SMPTE305M、SMPTE310M以及DVB-ASI(EN50083-9)等数字电视格式的信号,满足工业级产品的要求。那么&#xff…

【渝粤教育】国家开放大学2018年春季 0089-21TInternet和Intranet应用 参考试题

编号&#xff1a;0089 座位号&#xff1a; 17-18学年第1学期期末考试 Internet和Intranet应用试题 一、填空题&#xff1a;&#xff08;每空4分&#xff0c;共40分&#xff09; 1&#xff0e;Internet上各种网络和各种不同计算机间相互通信的基础是___________协议。 是WWW中…

SDI光端机是什么?SDI光端机产品介绍及监控方案!

SDI光端机就是光信号传输的中端设备。光纤价格的降低使它在各个领域得到很好的应用&#xff0c;因此各个光端机的厂家就好比是雨后春笋般发展起来。但是这里的厂家大部分技术并不是完全成熟&#xff0c;开发新技术需要耗资和人力、物力等&#xff0c;这就产生厂家多是中小企业&…

【渝粤教育】国家开放大学2018年春季 0105-21T酒店营销实务 参考试题

科目编号&#xff1a;0105 座位号 2017年度第二学期期末考试 酒店营销实务 试题 2018年7月 一、名词解释&#xff1a;&#xff08;每题5分&#xff0c;共20分&#xff09; 1&#xff0e;酒店的营销渠道&#xff1a; 产品生命周期&#xff1a; 市场营销&#xff1a; 酒店产品…

【渝粤教育】国家开放大学2018年春季 0177-21T电机学(二) 参考试题

编号&#xff1a;0177 a 2017-2018年度第二学期期末考试 电机学&#xff08;2&#xff09; 试 题 2018年 7 月 一、填空题&#xff08;每空 4分 &#xff0c;共40分&#xff09;1.一台隐极三相同步发电机时空向量中&#xff0b;j轴与&#xff0b;A轴重合&#xff0c;某瞬间转子…

adf可以自定义溶剂吗_ADF Faces。 立即的自定义客户端事件

adf可以自定义溶剂吗在本文中&#xff0c;我将重点介绍ADF Faces Javascript API方法以从客户端触发自定义事件。 例如&#xff1a; function cliListener(actionEvent) {AdfCustomEvent.queue(actionEvent.getSource(), "servListener",null, true);}我们可以使用a…

【渝粤教育】国家开放大学2018年春季 0234-21T公务员制度讲座 参考试题

科目编号&#xff1a;0234 座位号 2017-2018学年度第二学期期末考试 公务员制度讲座 试题 2018年 7 月 一、名词解释&#xff08;本大题共2小题&#xff0c;每小题10分&#xff0c;共计20分&#xff09; 1&#xff0e;公务员考试录用 2&#xff0e;任职前公示制度 二、单选题…

VGA光端机技术原理及应用领域介绍

VGA光端机采用纯数字传输模式&#xff0c;能从根本上克服普通铜芯电缆传输系统在传输高频带信号时造成的拖尾、重影等现象&#xff0c;清晰的重现图象画面。VGA光端机传输的是光信号&#xff0c;没有电磁辐射&#xff0c;系统具有极高的保密性。同时VGA光端机把显示设备和信号源…

java getbytes 长度_JAVA中的getBytes()方法

在Java中&#xff0c;String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。这个表示在不同情况下&#xff0c;返回的东西不一样&#xff01;String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示&#xff0c;如&…

【渝粤教育】国家开放大学2018年春季 0273-21T中国现代文学 参考试题

试卷编号&#xff1a;0273 座位号 2017——2018学年度第二学期期末考试 中国现代文学 试题 2018年7月 1&#xff0e;在文学革命中&#xff0c;_________提出的“八事”和陈独秀提出的“____________”&#xff0c;成为文学革命的主要内容。2&#xff0e;1921年10月出版的小说…

【渝粤教育】国家开放大学2018年春季 0341-21T高级英语听力(2) 参考试题

试卷代码&#xff1a;0341 2017-2018学年度第二学期期末考试 高级英语听力&#xff08;2&#xff09;试题 2018年7月 注 意 事 项 一、将你的准考证号、学生证号、姓名及分校&#xff08;工作站&#xff09;名称填写在答题纸规定栏内。 考试结束后&#xff0c;把试卷和答题纸放…

按应用领域来划分,电话光端机主要分为哪几类

我们都知道&#xff0c;电话光端机就是把传统的电话信号转换成光信号并在光纤上进行传输的设备。但是对于电话光端机的分类这块&#xff0c;大家可能了解的并不是很清楚&#xff0c;电话光端机根据不同的分类方式&#xff0c;有着不同的分法&#xff0c;今天飞畅科技的小编主要…

java构造函数可以重写_JAVA构造器,重载与重写

1. java构造器构造器也叫构造方法(constructor), 用于对象初始化. 构造器是一个创建对象时被自动创建的特殊方法,目的是对象的初始化. 构造器 的名称与类的名称一致. JAVA通过new关键子来调用构造器,从而返回该类的实例,是一种特殊的方法.备注要点:a. 通过new关键字来调用b. 构…