初次实践: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网页自动长截图)相关推荐

  1. python将图片转化为pdf,selenium自动化测试,xpath的语法

    一:python将图片转化为pdf import glob import fitz import osfrom matplotlib import pyplot as pltdef pic2pdf(p ...

  2. python编程入门到实践pdf,python编程入门课 视频

    初学者学Python编程如何快速入门? 谷歌人工智能写作项目:小发猫 初学python入门都需要具备那些条件? Python相对比较简单,零基础也能学typescript在npm安装后检测不到.系统学 ...

  3. python将html转成pdf,python将html转成PDF的实现代码(包含中文)

    前提: 安装xhtml2pdf https://pypi.python.org/pypi/xhtml2pdf/ 下载字体:微软雅黑:给个地址:http://www.jb51.net/fonts/848 ...

  4. 【Python】用python将html转化为pdf

    其实早在去年就有做过,一直没有写,先简单记录下 1.主要用到的工具[wkhtmltopdf] [下载地址]wkhtmltopdf 根据系统选择安装包,速度有点慢,先挂着 2.下载Python库 pip ...

  5. Python把图片转化为pdf代码实例

    更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接:好看站 http://www.nrso.net/ python安装reportlab pip install r ...

  6. 利用SingleFile插件和wkhtmltopdf工具,完美地将网页转化为PDF,即HTML转化PDF,同时文字可复制网址可跳转

    在日常的学习过程中,时常需要将网页中的内容存档.直接复制有时候费时费力. 往往我们就会选择将网页的所有内容保存为pdf. 通常我们会使用Ctrl+P快捷键,直接打印网页,这样做虽然比较简单,但网页的文 ...

  7. python ubuntu word txt 转pdf,python实现pdf转换成word/txt纯文本文件

    本文实例为大家分享了python实现pdf转word/txt,供大家参考,具体内容如下 依赖包:pdfminer3k 可以通过pip安装:也可以到下载,解压,进入文件夹,输入命令setup.py in ...

  8. python爬虫网页pdf_爬虫实战【3】Python-如何将html转化为pdf(PdfKit)

    前言 前面我们对博客园的文章进行了爬取,结果比较令人满意,可以一下子下载某个博主的所有文章了.但是,我们获取的只有文章中的文本内容,并且是没有排版的,看起来也比较费劲... 咋么办的?一个比较好的方法 ...

  9. python下载教程pdf-Python教程PDF合集下载

    Python教程PDF合集下载,大量Python学习资料大合辑,目录如下: BanditAlgorithms.pdf FlaskWeb开发基于Python.pdf fluentpython.pdf P ...

最新文章

  1. Django - - 进阶 - - 同源策略和跨域解决方案
  2. 解析XML时,需要校验节点是否闭合,如必须有与之对应,用()数据结构实现比较好?
  3. 获取表中的某个字段名
  4. OpenCV学习笔记(六)(七)(八)(九)(十)
  5. (二)Docker中以redis.conf配置文件启动Redis
  6. gorm preload 搜索_LeetCode刷题笔记|95:不同的二叉搜索树 II
  7. OpenJDK8基础类库包清单
  8. Javascritp入门
  9. 多项式拟合怎么确定次数_PyTorch入门4 搭建多项式回归模型
  10. tomcat7源代码Bootstrap
  11. DELMIA软件物流仿真:机器人输送带上下料虚拟仿真操作方法
  12. 中值滤波器的matlab实现
  13. 数字图像学笔记——8. 几种常见的空间滤波器(均值滤波器、中值滤波器)
  14. 最受欢迎的9个前端UI框架
  15. AI智能语音识别算法原理 四
  16. 基于Arduino控制伺服电机(舵机)
  17. 淘宝商品上传API接口
  18. [攻防世界]crypto新手练习区Caesar
  19. python mysql实例_Python操作Mysql实例代码
  20. J-Link 识别设备失败----NRF52832

热门文章

  1. 未来互联网的发展趋势
  2. 【Linux】初踏足Linux的大门
  3. vmware workstation的一些操作
  4. mac mysql 查看用户_Mac 最全 Mysql忘记用户名和密码如何处理-Go语言中文社区
  5. Linux系统工程师面试题
  6. 多种微量元素存在食物中
  7. ES6 入门教程 9 数组的扩展 9.1 扩展运算符
  8. 攀岩的基本技巧【整理汇总】
  9. windows10开热点无法连接网络的原因
  10. js请求返回一个页面html页面跳转页面,JS cookie操作 解决页面跳转返回