日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發布時間:2023/12/2 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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。

這里不知是為什么,生成PDF的時間挺長的,平均一個PDF耗時三分鐘。

/ 02 / 比賽結果

以前公眾號對華章計算機抖音大賽進行了推廣,在上個禮拜比賽的結果也出來了。

這里幫出版社擴散一下比賽結果。

華章計算機抖音大賽比賽結果

固然我也參加了,并且也獲獎了,不過是參與獎,四本書。

活動參與的人并很少,一共應該就只有8我的參賽。

講道理,900元現金以及30本書,這么豐厚的獎品,活動卻沒多少人參加,這值得沉思。

固然還會有第二屆,屆時我還會幫忙宣傳,這回沒有參加的小伙伴,下回必定要抓住機會。

為何我會繼續支持呢?這應該源于我以前參加的一個PPT比賽。

至今,我還留存著參與活動后的那本贈書。

書很不錯,我也從中學到了很多東西。

固然最重要的是動手就有收獲的道理。

種一棵樹最好的時間是十年前,其次是如今。因此行動起來,絕對沒錯。

從此的送書活動,若是條件容許的話,也將會以一些小比賽的形式送出,敬請期待。

/ 03 /? 送書

下面應該是上個禮拜的截圖了,姑且就以此做為參照。

以上的讀者,若是對下面這本書有興趣的話。

能夠微信聯系我,先到先得,就一本。

微信聯系方式能夠在公眾號菜單欄里找到。

一本有關Oracle數據庫的書。

明天送的兩本是有關Python數據分析的書,能夠關注一下。

/ 04 / 總結

兩期的文章代碼已上傳「GitHub」。

點擊左下角閱讀原文,便可獲取。

萬水千山老是情,點個「在看」行不行。

總結

以上是生活随笔為你收集整理的python将html存为pdf_用Python将HTML转为PDF。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。