近臨近開學了,大家都在忙著準備各種學習的資料,準備在新的學期好好學習,充實自己。小編身邊的同學也是如此,最近,小編的同學小麗就遇到了一個很棘手的問題。
她想將一個網頁的Python學習的教程打印下來,方便自己來學習,但是上千頁的教程,如果通過手動的方式,一個一個的去轉成pdf并保存到本地,實在是麻煩的不。
這就是一個html轉pdf的問題,其實網上有很多不錯的html資源,但是苦于學習起來,不方便!于是小編就跟小麗保證,這點小事包在我身上。今天,小編就跟分享一下如何用Python把html資料變成pdf。
如今網上的在線學習資料可謂是多如牛毛,為了方便講解,小編就利用python3.9.2的中文文檔作為演示的例子,來將其抓取并保存到本地,其網頁鏈接如下:
https://docs.python.org/zh-cn/3.9/tutorial/index.html
打開上述鏈接后,大家會在網頁中找到不同內容的鏈接地址,包括了基礎的python字符、python語法等內容。
在上圖中,我們需要格外關注的是紅色方格標注的鏈接,每個鏈接都會跳轉到對應的子網頁中,而在子網頁中,就是我們想要保存的內容。
可以看到,上圖中,在python速覽子頁面中,包含了我們需要提取的文字內容。所以將html內容保存為pdf的第一步便是獲取到子頁面的鏈接。由于教程大都是固定內容,因此對于教程的網頁,大都采用的是靜態頁面,在網頁源代碼中可以很輕松地找到子頁面的網頁鏈接。
對于子網頁的鏈接抓取,程序如下圖所示:
程序中,通過BeautifulSoup庫來解析網頁源代碼,然后提取所有的子頁面鏈接地址并返回,如果抓取失敗,則直接返回None。
03.html轉pdf
在得到子網頁的鏈接后,接下來就是將html的子網頁保存為pdf文件。小編使用的pdfkit庫,pdfkit庫可以將網頁保存為pdf文檔。首先小編來介紹一下pdfkit庫的安裝。
按照上述的操作流程,就可以安裝pdfkit庫。對于pdfkit庫的使用,常見的用法有以下三種:
上面的程序主要完成以下幾步:
首先需要指定wkhtmltopdf.exe文件的路徑;
因此,pdfkit庫只能將子網頁保存為單獨的pdf文檔,無法直接通過pdfkit庫將所有的子網頁拼接成一個完整的pdf文檔,小編通過PyPDF2庫中的PdfFileMerger類來實現pdf文檔的拼接。程序如下圖所示。
程序中首先將所有的html網頁保存為單獨的pdf文檔,然后通過PdfFileMerger類對象來實現pdf文檔的拼接。最后就可以得到全部的pdf內容。最后我們通過視頻的展示,來看一下程序的效果吧。
除此之外,程序不光可以抓取python3.9的中文文檔,針對其他的在線文檔,只需要對獲取網頁鏈接的程序進行修改即可抓取,例如對于Flask中文文檔的抓取,程序只需要按照下圖進行修改,即可將Flask的在線文檔保存為PDF文檔。
學習Python其實非常有趣,也很有用。因為Python有大量的現成的庫,可以幫助我們把工作中的很多瑣碎的煩事輕松解決。小編將上述的程序稍加修改,很快就幫阿麗搞定了教程,保存為pdf發送給了她,小編與女神的關系更拉近了一步
言:
通過前面的學習,已經知道如何打包js和json文件,
也了解了如何配置打包樣式文件的loader
但是之前我們都是手動的創建html,并且手動的引入打包后的js文件,這樣會有一定的不便,
因此接下來就一起看看webpack是如何處理html文件的
說明:
yarn add html-webpack-plugin -D
在webpack.config.js中配置插件說明
代碼如下:
// 1. 引入處理html插件,
const HtmlWebpackPlugin =
require("html-webpack-plugin")const {resolve} = require("path");module.exports = {
entry: "./src/main.js",
output:{
filename:"bundle.js",
path: resolve(__dirname,"dist")
},
module: {
rules:[
{
test: /\.css$/,
use:["style-loader","css-loader"]
}
]
},
// 配置插件
plugins:[
// 配置 處理html插件
new HtmlWebpackPlugin()
],
mode:"development"}
通過webpack命令打包
配置代碼如下:
const HtmlWebpackPlugin =
require("html-webpack-plugin")const {resolve} = require("path");module.exports = {
// ...
plugins:[
new HtmlWebpackPlugin({
// 配置html打包模板
template:"./src/main.html"
})
]
// ...}
<body>
<div>Hello World</div></body>
在webpack.config.js的插件html-webpack-plugin中配置html模板
將我們開發的html文件中的內容插入到plugin生成的html文件中
代碼如下:
const HtmlWebpackPlugin =
require("html-webpack-plugin")const {resolve} = require("path");module.exports = {
// ...
plugins:[
new HtmlWebpackPlugin({
// 配置html打包模板
template:"./src/main.html"
})
]
// ...}
此時,打包后, 查看dist目錄中index.html文件中就擁有了我們開發的內容
下載本地webpack
$ yarn add webpack webpack-cli -D
配置腳本命令使用webpack打包說明
在package.json中配置腳本命令
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "webpack"
},
配置完成以后就可以使用npm run build命令來使用本地webpack了
我辦app是焦作市委、市政府推出的2020年十大民生幸福工程之一,是面向廣大市民的一站式“互聯網+”城市服務云平臺。焦我辦app集政務服務、公共服務、便民服務于一體,整合了該市大數據平臺、政務服務業務中臺、公共信用信息平臺、“企業紓困360”平臺和人口庫、法人庫、電子證照庫等政務信息化建設方方面面的成果。首批整合接入19個市直部門的數據端口,在公積金、社保、不動產和大廳預約叫號、一鍵挪車等領域推出了5大亮點服務,涵蓋在線城市服務123項。而且,焦我辦app融合全市政務服務和公共服務事項,運用大數據技術提升網上政務服務能力,滿足人民群眾辦事需求,為市民生活提供全方位的民生保障。并在多個領域推出便民利企服務,真正實現“數據多跑路,群眾少跑腿”,有需要的朋友快來下載看看了。
1、在線辦事:政務大廳預約叫號、水氣暖報裝、公積金提取。
2、信息查詢:公積金、不動產、駕駛證、違章記錄等個人信息直查。
3、全新界面:界面簡潔但是容易使用,重要信息可以清晰獲得。
4、附近線路:精確查找附近線路,自由切換乘車站點,輕松選擇乘車站點。
5、車輛信息:還有幾輛車、還有幾站到實時掌握,緩解您等車焦慮,避免錯過車輛。
市政務服務和大數據管理局落實拓展“焦我辦”平臺功能這一市重點民生實事又有新舉措——助力我市疫情防控,“焦我辦”APP新增防疫報備功能。
為積極應對國內外區域疫情形勢及元旦、春節人員流動頻繁等情況,有效做到防線前移、關口內置,提升我市常態化疫情防控能力,市政務服務和大數據管理局按照市疫情防控指揮部要求,依托大數據平臺和政務業務中臺,以焦作城市門戶APP“焦我辦”為載體,近日正式上線“防疫報備”模塊,以方便省外來(返)焦人員、省內涉疫地區來(返)焦人員和我市出省返回人員落實“五個報備”。
1、“五個報備”是什么
按照我市疫情防控相關要求,所有省外來(返)焦人員、省內涉疫地區來(返)焦人員和我市出省返回人員均要提前進行線上報備。“五個報備”中,因公來焦的省外人員或省內涉疫地區人員,由接待單位提前完成線上報備;個人來焦出差、旅游的省外人員或省內涉疫地區人員,由個人進行報備,所入住的酒店賓館、游玩的景區負責指導監督其完成線上報備;從省內涉疫地區、省外回焦返鄉或來焦探親訪友的人員,由個人或接待親友進行報備,居住地所在社區(村)負責廣泛宣傳和指導、督促;團隊來焦旅游的省外人員或省內涉疫地區人員,由個人進行報備,所入住酒店賓館、旅行社和景區負責指導監督其完成線上報備;需離焦出省的本市人員,在出發前由個人進行報備,所在單位或社區(村)負責指導監督其提前完成線上報備。上述人員中,因身體或未配備智能手機等原因無法完成個人報備的,由履行報備指導監督責任的相關單位代為報備。
2、如何進行線上報備
據了解,線上報備需在“焦我辦”APP進行。相關人員可通過手機應用市場搜索“焦我辦”,下載安裝“焦我辦”APP,在“我的”進行注冊登記和人臉識別實名認證,然后點選首頁“防疫報備”模塊,閱讀報備類型后點擊“立即報備”,再選擇自身符合的報備類型并如實填寫個人情況,提交后即報備成功。
據悉,為統籌疫情防控和服務企業群眾辦事,市政務服務和大數據管理局充分發揮大數據優勢,通過整合更多服務資源、打通更多政務數據,在“焦我辦”APP推出了市政務服務大廳預約叫號、一鍵挪車、居住證快速核發、契稅繳納全流程網辦、青年人才落戶補貼申報等一系列功能,實現了“讓數據多跑路、讓群眾少跑腿”,減少了疫情防控期間的人員接觸,有效助力我市疫情防控。
1、收不到驗證碼?
由于各運營商網絡環境的問題,可能會造成延遲發送,因此請耐心等待即可,無需多次點擊獲取哦!如3分鐘內未收到短信驗證碼,可通過意見反饋聯系我們。
2、獲取驗證碼時,提示“驗證碼次數已到上限”
點擊一次驗證碼時,由于各運營商網絡環境的問題可能會造成延遲,而實際已發送多次驗證碼!如確實多次點擊已達上限的,可以聯系我們重置發送次數。
3、密碼提示規則不符?
目前賬號密碼長度需在8-16位,且必須包含數字、大寫字母、小寫字母、常用符號中的三個條件。
4、賬號密碼忘記了怎么辦?
您可以點擊登錄頁面中的“忘記密碼”,根據您的實際情況選擇找回密碼的方式進行找回。
5、忘記手勢密碼如何找回?
您可在登錄界面需輸入手勢密碼的下方,點擊“重新登錄”通過賬號密碼登錄即可,登錄成功后,可直接重新設置新的手勢密碼/指紋密碼;如果不記得賬號密碼的話,也可通過登錄界面右下角的“忘記密碼”進行找回。
轉載下載地址:http://www.32r.com/app/116700.html
*請認真填寫需求信息,我們會在24小時內與您取得聯系。