python将数字转为0010_用Python将HTML转为PDF。
上期提到了如何獲取公眾號文章信息,這回就說下怎么將網(wǎng)頁轉(zhuǎn)為PDF,方便平常學習。
然后擴散一下之前一個比賽的結(jié)果(華章計算機抖音大賽)。
順便談談自己對今后送書的一個想法。
另外之前的送書活動,有中獎的讀者沒有聯(lián)系我,所以這回一并送出。
明天還會送兩本書,大家也可以關(guān)注一下。
/ 01 / HTML轉(zhuǎn)PDF
主要用到的庫有pdfkit及wkhtmltopdf。
安裝我就不說了,網(wǎng)上也是一堆教程,通過下面的代碼也能略知一二。
需要注意的點就是,把網(wǎng)頁轉(zhuǎn)PDF的時候,需要將網(wǎng)頁的圖片下載下來,保存在本地。
然后生成網(wǎng)頁時調(diào)用本地的圖片,這樣就不會出現(xiàn)在PDF中圖片缺失的情況。
本次沒有去設(shè)置詳細的PDF參數(shù),所以生成的PDF排版并不是很友好,不過還是能湊合看的。
具體轉(zhuǎn)換代碼如下。
import?pandas?as?pdimport?requestsimport?pdfkitimport?osimport?re#?讀取數(shù)據(jù)并清洗
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,
}#?設(shè)置轉(zhuǎn)PDF參數(shù)
options?=?{"page-size":?"Letter","encoding":?"UTF-8","custom-header":?[
????????????("Accept-Encoding",?"gzip")
????????]
????}#?調(diào)用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#?用?來控制正則貪婪和非貪婪匹配;(.*?)?小括號來控制是否包含匹配的關(guān)鍵字
????pattern?=?re.compile(r'src=\"http.*?\"')
????result?=?pattern.findall(html)
????picCnt?=?0for?i?in?result:
????????picCnt?=?picCnt?+?1
????????url?=?re.findall(r'\"(.*?)\"',?i)[0]#?圖片名
????????picture_name?=?'{}/{}.png'.format('F:\\article_pdf',?str(picCnt))#?調(diào)用本地圖片
????????html?=?html.replace(url,?picture_name)#?獲取圖片內(nèi)容
????????r?=?requests.get(url)with?open(picture_name,?"wb+")?as?f:
????????????f.write(r.content)#?保存html文件
????????html?=?html.replace('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轉(zhuǎn)pdf
????????pdfkit.from_file(html_name,?pdf_name,?options=options)except:pass
最后成功生成所有文章的PDF。
這里不知是為何,生成PDF的時間挺長的,平均一個PDF耗時三分鐘。
/ 02 / 比賽結(jié)果
之前公眾號對華章計算機抖音大賽進行了推廣,在上個禮拜比賽的結(jié)果也出來了。
這里幫出版社擴散一下比賽結(jié)果。
華章計算機抖音大賽比賽結(jié)果
華章計算機,公眾號:華章計算機IT抖音王登場!首屆華章計算機抖音大賽得獎作者出爐啦!當然我也參加了,而且也獲獎了,不過是參與獎,四本書。
活動參與的人并不多,一共應該就只有8個人參賽。
講道理,900元現(xiàn)金以及30本書,這么豐厚的獎品,活動卻沒多少人參加,這值得沉思。
當然還會有第二屆,屆時我還會幫忙宣傳,這回沒有參加的小伙伴,下回一定要抓住機會。
為什么我會繼續(xù)支持呢?這應該源于我之前參加的一個PPT比賽。
至今,我還留存著參與活動后的那本贈書。
書很不錯,我也從中學到了不少東西。
當然最重要的是動手就有收獲的道理。
種一棵樹最好的時間是十年前,其次是現(xiàn)在。所以行動起來,絕對沒錯。
今后的送書活動,如果條件允許的話,也將會以一些小比賽的形式送出,敬請期待。
/ 03 /? 送書
下面應該是上個禮拜的截圖了,姑且就以此作為參照。
以上的讀者,如果對下面這本書有興趣的話。
可以微信聯(lián)系我,先到先得,就一本。
微信聯(lián)系方式可以在公眾號菜單欄里找到。
一本有關(guān)Oracle數(shù)據(jù)庫的書。
明天送的兩本是有關(guān)Python數(shù)據(jù)分析的書,可以關(guān)注一下。
/ 04 / 總結(jié)
兩期的文章代碼已上傳「GitHub」。
萬水千山總是情,點個「在看」行不行。
推薦閱讀
···? END? ···
支持小F原創(chuàng)???
總結(jié)
以上是生活随笔為你收集整理的python将数字转为0010_用Python将HTML转为PDF。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql命令参数详解_详解Mysql命
- 下一篇: 行锁mysql怎么执行_Mysql调用什