Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 99精选视频,国产720刺激i在线视频,亚洲成人福利

          整合營銷服務商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          牛逼!40行Python代碼把html網(wǎng)頁保存為pdf,太方便了

          近臨近開學了,大家都在忙著準備各種學習的資料,準備在新的學期好好學習,充實自己。小編身邊的同學也是如此,最近,小編的同學小麗就遇到了一個很棘手的問題。

          她想將一個網(wǎng)頁的Python學習的教程打印下來,方便自己來學習,但是上千頁的教程,如果通過手動的方式,一個一個的去轉成pdf并保存到本地,實在是麻煩的不。

          這就是一個html轉pdf的問題,其實網(wǎng)上有很多不錯的html資源,但是苦于學習起來,不方便!于是小編就跟小麗保證,這點小事包在我身上。今天,小編就跟分享一下如何用Python把html資料變成pdf。

          01.抓取的學習資料

          如今網(wǎng)上的在線學習資料可謂是多如牛毛,為了方便講解,小編就利用python3.9.2的中文文檔作為演示的例子,來將其抓取并保存到本地,其網(wǎng)頁鏈接如下:

          https://docs.python.org/zh-cn/3.9/tutorial/index.html

          打開上述鏈接后,大家會在網(wǎng)頁中找到不同內(nèi)容的鏈接地址,包括了基礎的python字符、python語法等內(nèi)容。

          02.獲取網(wǎng)頁鏈接

          在上圖中,我們需要格外關注的是紅色方格標注的鏈接,每個鏈接都會跳轉到對應的子網(wǎng)頁中,而在子網(wǎng)頁中,就是我們想要保存的內(nèi)容。

          可以看到,上圖中,在python速覽子頁面中,包含了我們需要提取的文字內(nèi)容。所以將html內(nèi)容保存為pdf的第一步便是獲取到子頁面的鏈接。由于教程大都是固定內(nèi)容,因此對于教程的網(wǎng)頁,大都采用的是靜態(tài)頁面,在網(wǎng)頁源代碼中可以很輕松地找到子頁面的網(wǎng)頁鏈接。

          對于子網(wǎng)頁的鏈接抓取,程序如下圖所示:

          程序中,通過BeautifulSoup庫來解析網(wǎng)頁源代碼,然后提取所有的子頁面鏈接地址并返回,如果抓取失敗,則直接返回None


          03.html轉pdf

          在得到子網(wǎng)頁的鏈接后,接下來就是將html的子網(wǎng)頁保存為pdf文件。小編使用的pdfkit庫,pdfkit庫可以將網(wǎng)頁保存為pdf文檔。首先小編來介紹一下pdfkit庫的安裝。

          • 下載https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox-0.12.6-1.mxe-cross-win64.7z 并解壓到本地文件中。(后臺輸入:pdf) 直接獲取。
          • 將解壓文件中的bin文件路徑添加到系統(tǒng)變量Path中。
          • 執(zhí)行pip install pdfkit
          • 執(zhí)行pip install wkhtmltopdf

          按照上述的操作流程,就可以安裝pdfkit庫。對于pdfkit庫的使用,常見的用法有以下三種:

          上面的程序主要完成以下幾步:

          首先需要指定wkhtmltopdf.exe文件的路徑;

          • 然后分別通過from_url、from_file和from_string的三種方式來保存為pdf文件;
          • 需要注意的是,from_file和from_url中的第一個參數(shù)必須是一個html的字符串或者是html文檔的列表;
          • 但是小編通過程序運行發(fā)現(xiàn),from_url第一個參數(shù)只能是html的字符串,不能是html的列表


          因此,pdfkit庫只能將子網(wǎng)頁保存為單獨的pdf文檔,無法直接通過pdfkit庫將所有的子網(wǎng)頁拼接成一個完整的pdf文檔,小編通過PyPDF2庫中的PdfFileMerger類來實現(xiàn)pdf文檔的拼接。程序如下圖所示。

          程序中首先將所有的html網(wǎng)頁保存為單獨的pdf文檔,然后通過PdfFileMerger類對象來實現(xiàn)pdf文檔的拼接。最后就可以得到全部的pdf內(nèi)容。最后我們通過視頻的展示,來看一下程序的效果吧。


          除此之外,程序不光可以抓取python3.9的中文文檔,針對其他的在線文檔,只需要對獲取網(wǎng)頁鏈接的程序進行修改即可抓取,例如對于Flask中文文檔的抓取,程序只需要按照下圖進行修改,即可將Flask的在線文檔保存為PDF文檔。

          04.總結

          學習Python其實非常有趣,也很有用。因為Python有大量的現(xiàn)成的庫,可以幫助我們把工作中的很多瑣碎的煩事輕松解決。小編將上述的程序稍加修改,很快就幫阿麗搞定了教程,保存為pdf發(fā)送給了她,小編與女神的關系更拉近了一步

          言:

          通過前面的學習,已經(jīng)知道如何打包js和json文件,

          也了解了如何配置打包樣式文件的loader

          但是之前我們都是手動的創(chuàng)建html,并且手動的引入打包后的js文件,這樣會有一定的不便,

          因此接下來就一起看看webpack是如何處理html文件的

          1. 安裝使用處理html的插件

          說明:

          1. webpack打包html文件資源,不是使用loader而是使用插件
          2. 使用html-webpack-plugin插件自動生成html文件

          1.1 下載插件

          yarn add html-webpack-plugin -D

          1.2 配置插件

          在webpack.config.js中配置插件說明

          1. 引入下載好的插件
          2. 在plugins中配置插件

          代碼如下:

          // 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"}

          1.3 打包結果說明

          通過webpack命令打包

          1. 會發(fā)現(xiàn)打包后的index.html是一個空的html文件 ,沒有其他結構內(nèi)容
          2. 因為插件html-webpack-plugin是自動創(chuàng)建一個新的html文件,并自動引入bundle.js
          3. 因此我們自己開發(fā)的index.html內(nèi)容并沒有處理到打包后的html文件中

          配置代碼如下:

          const HtmlWebpackPlugin =

          require("html-webpack-plugin")const {resolve} = require("path");module.exports = {
          // ...

          plugins:[
          new HtmlWebpackPlugin({
          // 配置html打包模板
          template:"./src/main.html"
          })
          ]

          // ...}

          2. 將我們自己寫html內(nèi)容插入打包后的html文件

          2.1 說明

          1. src文件夾使我們開發(fā)文件夾,因此我們可能會在這個文件夾中開發(fā)html文件內(nèi)容
          2. 但是html-webpack-plugin會在打包的dist目錄中生成新的html文件,
          3. 新生成的文件中,不包含我們開發(fā)的html文件內(nèi)容
          4. 如果我們需要將自己開發(fā)的html內(nèi)容也插入到打包后的html文件中,就需要配置

          2.2 在src文件中新建html,并開發(fā)內(nèi)容

          <body>
          <div>Hello World</div></body>

          2.3 在webpack.config.js配置插件

          在webpack.config.js的插件html-webpack-plugin中配置html模板

          將我們開發(fā)的html文件中的內(nèi)容插入到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文件中就擁有了我們開發(fā)的內(nèi)容

          3. 配置本地webpack

          3.1 為什么需要配置本地webpack

          1. webpack版本的不同,可能會對項目造成影響
          2. 項目是多人協(xié)同開發(fā),如果每一個人電腦都全局安裝不同的webpack,會導致項目配置出問題
          3. 因此需要配置項目本地webpack,以及配置腳本運行webpack命令

          3.2 下載配置本地webpack

          下載本地webpack

          $ yarn add webpack webpack-cli -D

          3.3 配置腳本命令

          配置腳本命令使用webpack打包說明

          1. 在所有的終端里使用webpack命令,默認都是全局安裝的webpack
          2. 項目為了保證統(tǒng)一,需要使用項目本地webpack進行打包
          3. 腳本中運行的webpack是使用本地webpack命令

          在package.json中配置腳本命令

          "scripts": {
          "test": "echo \"Error: no test specified\" && exit 1",
          "build": "webpack"
          },

          配置完成以后就可以使用npm run build命令來使用本地webpack了

          我辦app是焦作市委、市政府推出的2020年十大民生幸福工程之一,是面向廣大市民的一站式“互聯(lián)網(wǎng)+”城市服務云平臺。焦我辦app集政務服務、公共服務、便民服務于一體,整合了該市大數(shù)據(jù)平臺、政務服務業(yè)務中臺、公共信用信息平臺、“企業(yè)紓困360”平臺和人口庫、法人庫、電子證照庫等政務信息化建設方方面面的成果。首批整合接入19個市直部門的數(shù)據(jù)端口,在公積金、社保、不動產(chǎn)和大廳預約叫號、一鍵挪車等領域推出了5大亮點服務,涵蓋在線城市服務123項。而且,焦我辦app融合全市政務服務和公共服務事項,運用大數(shù)據(jù)技術提升網(wǎng)上政務服務能力,滿足人民群眾辦事需求,為市民生活提供全方位的民生保障。并在多個領域推出便民利企服務,真正實現(xiàn)“數(shù)據(jù)多跑路,群眾少跑腿”,有需要的朋友快來下載看看了。

          軟件功能

          1、在線辦事:政務大廳預約叫號、水氣暖報裝、公積金提取。
          2、信息查詢:公積金、不動產(chǎn)、駕駛證、違章記錄等個人信息直查。
          3、全新界面:界面簡潔但是容易使用,重要信息可以清晰獲得。
          4、附近線路:精確查找附近線路,自由切換乘車站點,輕松選擇乘車站點。
          5、車輛信息:還有幾輛車、還有幾站到實時掌握,緩解您等車焦慮,避免錯過車輛。

          焦我辦防疫報備功能

          市政務服務和大數(shù)據(jù)管理局落實拓展“焦我辦”平臺功能這一市重點民生實事又有新舉措——助力我市疫情防控,“焦我辦”APP新增防疫報備功能。
          為積極應對國內(nèi)外區(qū)域疫情形勢及元旦、春節(jié)人員流動頻繁等情況,有效做到防線前移、關口內(nèi)置,提升我市常態(tài)化疫情防控能力,市政務服務和大數(shù)據(jù)管理局按照市疫情防控指揮部要求,依托大數(shù)據(jù)平臺和政務業(yè)務中臺,以焦作城市門戶APP“焦我辦”為載體,近日正式上線“防疫報備”模塊,以方便省外來(返)焦人員、省內(nèi)涉疫地區(qū)來(返)焦人員和我市出省返回人員落實“五個報備”。
          1、“五個報備”是什么
          按照我市疫情防控相關要求,所有省外來(返)焦人員、省內(nèi)涉疫地區(qū)來(返)焦人員和我市出省返回人員均要提前進行線上報備。“五個報備”中,因公來焦的省外人員或省內(nèi)涉疫地區(qū)人員,由接待單位提前完成線上報備;個人來焦出差、旅游的省外人員或省內(nèi)涉疫地區(qū)人員,由個人進行報備,所入住的酒店賓館、游玩的景區(qū)負責指導監(jiān)督其完成線上報備;從省內(nèi)涉疫地區(qū)、省外回焦返鄉(xiāng)或來焦探親訪友的人員,由個人或接待親友進行報備,居住地所在社區(qū)(村)負責廣泛宣傳和指導、督促;團隊來焦旅游的省外人員或省內(nèi)涉疫地區(qū)人員,由個人進行報備,所入住酒店賓館、旅行社和景區(qū)負責指導監(jiān)督其完成線上報備;需離焦出省的本市人員,在出發(fā)前由個人進行報備,所在單位或社區(qū)(村)負責指導監(jiān)督其提前完成線上報備。上述人員中,因身體或未配備智能手機等原因無法完成個人報備的,由履行報備指導監(jiān)督責任的相關單位代為報備。
          2、如何進行線上報備
          據(jù)了解,線上報備需在“焦我辦”APP進行。相關人員可通過手機應用市場搜索“焦我辦”,下載安裝“焦我辦”APP,在“我的”進行注冊登記和人臉識別實名認證,然后點選首頁“防疫報備”模塊,閱讀報備類型后點擊“立即報備”,再選擇自身符合的報備類型并如實填寫個人情況,提交后即報備成功。
          據(jù)悉,為統(tǒng)籌疫情防控和服務企業(yè)群眾辦事,市政務服務和大數(shù)據(jù)管理局充分發(fā)揮大數(shù)據(jù)優(yōu)勢,通過整合更多服務資源、打通更多政務數(shù)據(jù),在“焦我辦”APP推出了市政務服務大廳預約叫號、一鍵挪車、居住證快速核發(fā)、契稅繳納全流程網(wǎng)辦、青年人才落戶補貼申報等一系列功能,實現(xiàn)了“讓數(shù)據(jù)多跑路、讓群眾少跑腿”,減少了疫情防控期間的人員接觸,有效助力我市疫情防控。

          焦我辦app登錄幫助

          1、收不到驗證碼?
          由于各運營商網(wǎng)絡環(huán)境的問題,可能會造成延遲發(fā)送,因此請耐心等待即可,無需多次點擊獲取哦!如3分鐘內(nèi)未收到短信驗證碼,可通過意見反饋聯(lián)系我們。
          2、獲取驗證碼時,提示“驗證碼次數(shù)已到上限”
          點擊一次驗證碼時,由于各運營商網(wǎng)絡環(huán)境的問題可能會造成延遲,而實際已發(fā)送多次驗證碼!如確實多次點擊已達上限的,可以聯(lián)系我們重置發(fā)送次數(shù)。
          3、密碼提示規(guī)則不符?
          目前賬號密碼長度需在8-16位,且必須包含數(shù)字、大寫字母、小寫字母、常用符號中的三個條件。
          4、賬號密碼忘記了怎么辦?
          您可以點擊登錄頁面中的“忘記密碼”,根據(jù)您的實際情況選擇找回密碼的方式進行找回。
          5、忘記手勢密碼如何找回?
          您可在登錄界面需輸入手勢密碼的下方,點擊“重新登錄”通過賬號密碼登錄即可,登錄成功后,可直接重新設置新的手勢密碼/指紋密碼;如果不記得賬號密碼的話,也可通過登錄界面右下角的“忘記密碼”進行找回。

          轉載下載地址:http://www.32r.com/app/116700.html


          主站蜘蛛池模板: 中文字幕一区二区三匹| 一区二区在线免费观看| 无码丰满熟妇浪潮一区二区AV| 麻豆一区二区三区蜜桃免费| 中文字幕av日韩精品一区二区 | 久久久人妻精品无码一区| 日本一区视频在线播放| 激情内射日本一区二区三区| 成人影片一区免费观看| 国产一区二区三区不卡观| 久久青草精品一区二区三区| 暖暖免费高清日本一区二区三区| 精品欧洲AV无码一区二区男男 | 亚洲国产高清在线一区二区三区 | 高清一区二区在线观看| 小泽玛丽无码视频一区| 高清国产AV一区二区三区| 日韩在线一区视频| 亚洲AV无码一区东京热| 无码人妻精品一区二区三区99不卡 | 国产成人精品一区二区A片带套| 亚洲一区精品伊人久久伊人| 毛片一区二区三区无码| 久久精品一区二区三区日韩| 丰满人妻一区二区三区视频| 亚洲宅男精品一区在线观看| 国产日韩AV免费无码一区二区| 国产精品自拍一区| 国产一区在线视频| 无码日韩人妻AV一区二区三区| 国产福利微拍精品一区二区 | 中文精品一区二区三区四区| 日本一区二区在线| 美女啪啪一区二区三区| 国产亚洲情侣一区二区无| 91麻豆精品国产自产在线观看一区 | 国产AV午夜精品一区二区入口| 精品久久一区二区三区| 美女一区二区三区| 国产精品电影一区| 天美传媒一区二区三区|