15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > 采用Selenium、ChormeDriver和pdfkit生成网页的pdf

采用Selenium、ChormeDriver和pdfkit生成网页的pdf

时间:2023-05-27 03:39:01 | 来源:网站运营

时间:2023-05-27 03:39:01 来源:网站运营

采用Selenium、ChormeDriver和pdfkit生成网页的pdf:

原理:

使用Selenium + ChromeDriver打开页面, 拿到html 源码,然后再使用pdfkit生成pdf

概念:

Selenium:Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样

ChromeDriver:它是 google 为网站开发人员提供的自动化测试接口,是 selenium2 和 chrome浏览器 进行通信的桥梁

wkhtmltopdf:它是一个适用于多平台的html到pdf转换的软件

pdfkit:它是wkhtmltopdf的Python封装包

安装(Linux CentOS7)

1、安装wkhtmltopdf

1)在wkhtmltopdf的官网下载安装包

官网地址:https://wkhtmltopdf.org/downloads.html

2)上传到linux服务器

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 报错:

错误:依赖检测失败: 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)测试是否安装成功

wkhtmltopdf http://www.baidu.com ~/test.pdf执行成功后,打开test.pdf,看到下面效果,说明安装成功

2、安装pdfkit

1)安装Python环境

使用Anconada安装Python环境:

conda create --name python3.6.6 python=3.6.6 进入Python 3.6.6环境(后续所有命令都是在此环境下操作):

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页面,说明pdfkit安装成功

3、为什么要使用Selenium + ChromeDriver

以上的方法仅适用于静态页,如果页面是动态加载出来的,使用以上方法会有问题,动态调用后端接口的部分会加载不出来

为了解决这个问题,可以使用Selenium + ChromeDriver打开页面,拿到页面源码,然后再使用pdfkit生成pdf

4、安装ChromeDriver

ChromeDriver是依赖于Chrome运行的,所以需要先安装Chrome

1)安装Chrome

请自行搜索

2)安装ChromeDriver

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

ChromeDriver的版本号需要跟Chrome的版本号对应

比如我的Chrome版本号为Google Chrome 86.0.4240.183,那么对应的ChromeDriver版本号也是86

点击进入,查看notes.txt,可以看到这个版本的ChromeDriver对应的Chrome版本号

找到相应的系统版本下载:

scp到服务器:

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

unzip chromedriver_linux64.zip 移动:

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()# 以最高权限运行options_chrome.add_argument('--no-sandbox')# 浏览器不提供可视化页面,linux下如果系统不支持可视化不加这条会启动失败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()请将url换为您想转为pdf的url

更多Python学习,请查看:



关键词:采用

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭