概念:Selenium:Selenium是一個(gè)用于Web應(yīng)用程序測(cè)試的工具。Selenium測(cè)試直接運(yùn)行在" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁(yè) > 營(yíng)銷資訊 > 網(wǎng)站運(yùn)營(yíng) > 采用Selenium、ChormeDriver和pdfkit生成網(wǎng)頁(yè)的pdf

采用Selenium、ChormeDriver和pdfkit生成網(wǎng)頁(yè)的pdf

時(shí)間:2023-05-27 03:39:01 | 來源:網(wǎng)站運(yùn)營(yíng)

時(shí)間:2023-05-27 03:39:01 來源:網(wǎng)站運(yùn)營(yíng)

采用Selenium、ChormeDriver和pdfkit生成網(wǎng)頁(yè)的pdf:

原理:

使用Selenium + ChromeDriver打開頁(yè)面, 拿到html 源碼,然后再使用pdfkit生成pdf

概念:

Selenium:Selenium是一個(gè)用于Web應(yīng)用程序測(cè)試的工具。Selenium測(cè)試直接運(yùn)行在瀏覽器中,就像真正的用戶在操作一樣

ChromeDriver:它是 google 為網(wǎng)站開發(fā)人員提供的自動(dòng)化測(cè)試接口,是 selenium2 和 chrome瀏覽器 進(jìn)行通信的橋梁

wkhtmltopdf:它是一個(gè)適用于多平臺(tái)的html到pdf轉(zhuǎn)換的軟件

pdfkit:它是wkhtmltopdf的Python封裝包

安裝(Linux CentOS7)

1、安裝wkhtmltopdf

1)在wkhtmltopdf的官網(wǎng)下載安裝包

官網(wǎng)地址:https://wkhtmltopdf.org/downloads.html

2)上傳到linux服務(wù)器

scp wkhtmltox-0.12.6-1.centos7.x86_64.rpm tn@10.211.55.22:~/soft/ 3)安裝

sudo rpm -ivh wkhtmltox-0.12.6-1.centos7.x86_64.rpm 報(bào)錯(cuò):

錯(cuò)誤:依賴檢測(cè)失?。? xorg-x11-fonts-75dpi 被 wkhtmltox-1:0.12.6-1.centos7.x86_64 需要 安裝xorg-x11-fonts-75dpi:

sudo yum install xorg-x11-fonts-75dpi 再次安裝:

sudo rpm -ivh wkhtmltox-0.12.6-1.centos7.x86_64.rpm 4)在/usr/local/bin/目錄下可以看到安裝了wkhtmltoimage 和 wkhtmltopdf

5)測(cè)試是否安裝成功

wkhtmltopdf http://www.baidu.com ~/test.pdf執(zhí)行成功后,打開test.pdf,看到下面效果,說明安裝成功

2、安裝pdfkit

1)安裝Python環(huán)境

使用Anconada安裝Python環(huán)境:

conda create --name python3.6.6 python=3.6.6 進(jìn)入Python 3.6.6環(huán)境(后續(xù)所有命令都是在此環(huán)境下操作):

source activate python3.6.62)安裝pdfkit

pip install pdfkit3)示例

import pdfkitpdf_options = { 'page-size': 'A4',}url = 'https://www.baidu.com/'pdfkit.from_url(url, 'test.pdf', options=pdf_options)打開test.pdf看到baidu頁(yè)面,說明pdfkit安裝成功

3、為什么要使用Selenium + ChromeDriver

以上的方法僅適用于靜態(tài)頁(yè),如果頁(yè)面是動(dòng)態(tài)加載出來的,使用以上方法會(huì)有問題,動(dòng)態(tài)調(diào)用后端接口的部分會(huì)加載不出來

為了解決這個(gè)問題,可以使用Selenium + ChromeDriver打開頁(yè)面,拿到頁(yè)面源碼,然后再使用pdfkit生成pdf

4、安裝ChromeDriver

ChromeDriver是依賴于Chrome運(yùn)行的,所以需要先安裝Chrome

1)安裝Chrome

請(qǐng)自行搜索

2)安裝ChromeDriver

下載地址:http://chromedriver.storage.googleapis.com/index.html

ChromeDriver的版本號(hào)需要跟Chrome的版本號(hào)對(duì)應(yīng)

比如我的Chrome版本號(hào)為Google Chrome 86.0.4240.183,那么對(duì)應(yīng)的ChromeDriver版本號(hào)也是86

點(diǎn)擊進(jìn)入,查看notes.txt,可以看到這個(gè)版本的ChromeDriver對(duì)應(yīng)的Chrome版本號(hào)

找到相應(yīng)的系統(tǒng)版本下載:

scp到服務(wù)器:

scp ~/Downloads/chromedriver_linux64.zip tn@10.211.55.22:~/soft/ 解壓:

unzip chromedriver_linux64.zip 移動(dòng):

sudo mv chromedriver /usr/local/bin/chromedriver 查看chromedriver版本:

chromedriver --version 顯示版本:ChromeDriver 86.0.4240.22

5、安裝selenium

pip install selenium

示例

代碼示例:

import pdfkit, time, pprintfrom selenium import webdriveroptions_chrome = webdriver.ChromeOptions()# 以最高權(quán)限運(yùn)行options_chrome.add_argument('--no-sandbox')# 瀏覽器不提供可視化頁(yè)面,linux下如果系統(tǒng)不支持可視化不加這條會(huì)啟動(dòng)失敗options_chrome.add_argument('--headless')# executable_path為chromedriver的位置driver = webdriver.Chrome(executable_path='/usr/local/bin/chromedriver', chrome_options=options_chrome)# 瀏覽器全屏driver.fullscreen_window()url = 'http://www.tn666.com/test?id=1'driver.get(url)# sleep 1秒time.sleep(1)source_text = driver.page_sourceoptions_pdf = { 'page-size': 'A4'}result = pdfkit.from_string(source_text, 'test.pdf', options=options_pdf)driver.quit()請(qǐng)將url換為您想轉(zhuǎn)為pdf的url

更多Python學(xué)習(xí),請(qǐng)查看:



關(guān)鍵詞:采用

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉