Python将网页转化为PDF(python网页自动长截图)
初次实践:python网页自动截图
步骤如下:
(1) 安装python selenium 库,推荐使用pip快速安装最新版本 pip install selenium
(2) 检查Chrome浏览器的版本,下载对应版本的chromedriver。
(3) 通过地址栏里输入命令 chrome://version/
在 http://npm.taobao.org/mirrors/chromedriver/ 的网址上下载对应的chromedriver,下载下来的文件是一个压缩包,然后解压就会有一个exe文件,把exe文件copy下来放到chrome的同一路径下(也可直接放在python路径下),然后复制这个路径在环境配置里的系统环境path添加chromedriver的路径配置环境变量。
(4) 编写测试代码:
from selenium import webdriver
import threading
import time
import os
import datetimedef road_situation():# 每隔30秒截屏一次t = threading.Timer(30, road_situation)t.start()# start = datetime.datetime.now()# print(start)# 初始化一个谷歌浏览器实例driver = webdriver.Chrome()driver.maximize_window()driver.get("https://www.sohu.com/")# driver.refresh()driver.get_screenshot_as_file(r"E:\PyCharm2017project\Atest\maintest\picture\%s.png" %time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time())))print(os.getcwd())# end = datetime.datetime.now()# print(end)# print(end - start)driver.quit()if __name__ == "__main__":road_situation()
但截取的是打开网页后的全屏,后面下拉的页面没有截取到,没有达到想要的效果,
如果页面较大,页面会产生上下翻页的效果,屏幕截图无法应对此种页面,截图看到的网页只有一部分。后使用selenium + phantomjs实现网页长截图可以解决这一问题。
法一:使用 selenium + phantomjs实现网页长截图
步骤如下:
(1) 安装python selenium 库,推荐使用pip快速安装最新版本 pip install selenium
(2) 下载phantomjs.exe,将其添加到环境变量 path 中 。方便起见可以直接放在python的安装目录根目录下。下载链接:https://phantomjs.org/download.html
(3) 编写测试代码
from selenium import webdriver ##从selenium库导入webdirver
import threading
import time
import os
import datetimedef road_situation():# 每隔30秒截屏一次t = threading.Timer(30, road_situation)t.start()# start = datetime.datetime.now()# print(start)# 初始化一个谷歌浏览器实例##使用webdirver.PhantomJS()方法新建一个phantomjs的对象,这里会使用到phantomjs.exe,环境变量path中找不到phantomjs.exe,则会报错driver = webdriver.PhantomJS()driver.maximize_window() #设置phantomjs浏览器全屏显示#使用get()方法,打开指定页面。注意这里是phantomjs是无界面的,所以不会有任何页面显示driver.get("https://www.sohu.com/")# driver.refresh()driver.get_screenshot_as_file(r"E:\PyCharm2017project\Atest\maintest\picture\%s.png" %time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time())))print(os.getcwd())# end = datetime.datetime.now()# print(end)# print(end - start)#关闭phantomjs浏览器,不要忽略了这一步,否则你会在任务浏览器中发现许多phantomjs进程driver.quit()if __name__ == "__main__":road_situation()
网页转PNG图片(截取的png图片):
法二:python将网页转化为pdf:
(1) 安装python pdfkit 库,推荐使用pip快速安装最新版本,pip install pdfkit
(2) 下载wkhtmltopdf安装包,并且安装到电脑上,在系统Path变量中添加wkhtmltopdf的bin路径,以便于pdfkit的调用。
下载链接:https://wkhtmltopdf.org/downloads.html
(3) 编写测试代码
#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
@author:ZSW
@file:htmltopdf.py
@time:2020/09/14
"""
import pdfkit
import time
import datetime
def save_to_pdf(url):'''根据url,将文章保存到本地:param url::return:'''start = datetime.datetime.now()print(start)# 本来直接调用pdfkid的from方法就可以了,但是由于我们的wkhtmltopdf安装包有点问题,一直没法搜到,所以只能用本办法,直接配置了wk的地址# wkhtmltopdf下载链接: https://wkhtmltopdf.org/downloads.htmlconfig = pdfkit.configuration(wkhtmltopdf=r'E:\htmltopdf\wkhtmltopdf\bin\wkhtmltopdf.exe')pdfkit.from_url(url, r"E:\PyCharm2017project\Atest\maintest\picture\%s.pdf"%time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime(time.time())), configuration=config)end = datetime.datetime.now()print(end)print(end - start)if __name__ =='__main__':url = "https://www.sohu.com/"save_to_pdf(url)
网页转PDF文件:
法三:
注:如果不是有特别的需求,可以用Chrome浏览器将网页页面另存为PDF的功能,步骤如下:
(1) 打开需要转为PDF的网页;
(2) 右击鼠标按键——选择‘打印’——再选择‘另存为PDF’——点击‘保存即可’。
(3) 打开保存的pdf查看,其效果和法二实现的一样。
小结:经过简单实践,两种方法都能够实现网页自动长截图,但使用方法二的效率更高些,运行时间较法一短。但对于像搜狐首页这种长下拉的网页,截取的pdf(图片)中 有些图片未加载出来。
参考链接:https://blog.csdn.net/xc_zhou/article/details/80952168
https://www.jb51.net/article/140366.htm
Python将网页转化为PDF(python网页自动长截图)相关推荐
- python将图片转化为pdf,selenium自动化测试,xpath的语法
一:python将图片转化为pdf import glob import fitz import osfrom matplotlib import pyplot as pltdef pic2pdf(p ...
- python编程入门到实践pdf,python编程入门课 视频
初学者学Python编程如何快速入门? 谷歌人工智能写作项目:小发猫 初学python入门都需要具备那些条件? Python相对比较简单,零基础也能学typescript在npm安装后检测不到.系统学 ...
- python将html转成pdf,python将html转成PDF的实现代码(包含中文)
前提: 安装xhtml2pdf https://pypi.python.org/pypi/xhtml2pdf/ 下载字体:微软雅黑:给个地址:http://www.jb51.net/fonts/848 ...
- 【Python】用python将html转化为pdf
其实早在去年就有做过,一直没有写,先简单记录下 1.主要用到的工具[wkhtmltopdf] [下载地址]wkhtmltopdf 根据系统选择安装包,速度有点慢,先挂着 2.下载Python库 pip ...
- Python把图片转化为pdf代码实例
更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接:好看站 http://www.nrso.net/ python安装reportlab pip install r ...
- 利用SingleFile插件和wkhtmltopdf工具,完美地将网页转化为PDF,即HTML转化PDF,同时文字可复制网址可跳转
在日常的学习过程中,时常需要将网页中的内容存档.直接复制有时候费时费力. 往往我们就会选择将网页的所有内容保存为pdf. 通常我们会使用Ctrl+P快捷键,直接打印网页,这样做虽然比较简单,但网页的文 ...
- python ubuntu word txt 转pdf,python实现pdf转换成word/txt纯文本文件
本文实例为大家分享了python实现pdf转word/txt,供大家参考,具体内容如下 依赖包:pdfminer3k 可以通过pip安装:也可以到下载,解压,进入文件夹,输入命令setup.py in ...
- python爬虫网页pdf_爬虫实战【3】Python-如何将html转化为pdf(PdfKit)
前言 前面我们对博客园的文章进行了爬取,结果比较令人满意,可以一下子下载某个博主的所有文章了.但是,我们获取的只有文章中的文本内容,并且是没有排版的,看起来也比较费劲... 咋么办的?一个比较好的方法 ...
- python下载教程pdf-Python教程PDF合集下载
Python教程PDF合集下载,大量Python学习资料大合辑,目录如下: BanditAlgorithms.pdf FlaskWeb开发基于Python.pdf fluentpython.pdf P ...
最新文章
- Django - - 进阶 - - 同源策略和跨域解决方案
- 解析XML时,需要校验节点是否闭合,如必须有与之对应,用()数据结构实现比较好?
- 获取表中的某个字段名
- OpenCV学习笔记(六)(七)(八)(九)(十)
- (二)Docker中以redis.conf配置文件启动Redis
- gorm preload 搜索_LeetCode刷题笔记|95:不同的二叉搜索树 II
- OpenJDK8基础类库包清单
- Javascritp入门
- 多项式拟合怎么确定次数_PyTorch入门4 搭建多项式回归模型
- tomcat7源代码Bootstrap
- DELMIA软件物流仿真:机器人输送带上下料虚拟仿真操作方法
- 中值滤波器的matlab实现
- 数字图像学笔记——8. 几种常见的空间滤波器(均值滤波器、中值滤波器)
- 最受欢迎的9个前端UI框架
- AI智能语音识别算法原理 四
- 基于Arduino控制伺服电机(舵机)
- 淘宝商品上传API接口
- [攻防世界]crypto新手练习区Caesar
- python mysql实例_Python操作Mysql实例代码
- J-Link 识别设备失败----NRF52832