selenium网页截图总结(持续更新)不废话直接上代码

方法一

  • 优点:(可视化浏览器)可以截长图
import pdfkit
from selenium import webdriverdriver = webdriver.Chrome(executable_path=r".\chromedriver.exe")
driver.get('https://blog.csdn.net/weixin_43695063/article/details/100701356') # 一篇有滚动条博客的url
ac=driver.current_url
confg = pdfkit.configuration(wkhtmltopdf=r'E:\install\wkhtmltopdf\bin\wkhtmltopdf.exe')
pdfkit.from_url(ac, './jmeter11.pdf',configuration=confg)
driver.quit()

方法二

  • 全网页截图
  • 优点:PhantomJS可以截全图
  • 缺点:Chrome和Firefox只能截可视区域
from selenium import webdriverdriver = webdriver.Chrome(executable_path=r".\chromedriver.exe")
driver.get('https://blog.csdn.net/weixin_43695063/article/details/100701356') # 一篇带有滚动条博客的url
driver.save_screenshot('screenshot.png')
driver.quit()

方法三

  • 定位区块截图
  • 优点:PhantomJS可以截全图
  • 缺点:Chrome和Firefox只能截可视区域
from selenium import webdriver
from PIL import Imagedriver = webdriver.Chrome(executable_path=r".\chromedriver.exe")
driver.get('https://www.baidu.com')
driver.save_screenshot(r'img.png')    # 截一张全图
baidu = driver.find_element_by_id('su') # 截图按钮百度一下
left = baidu.location['x']           # 区块截图左上角在网页中的x坐标
top = baidu.location['y']                # 区块截图左上角在网页中的y坐标
right = left + baidu.size['width']      # 区块截图右下角在网页中的x坐标
bottom = top + baidu.size['height']     # 区块截图右下角在网页中的y坐标
print({"left": left, "top": top, "right": right, "bottom ": bottom})
print("baidu.size['width']:%s" % baidu.size['width'])
print("baidu.size['height']:%s" % baidu.size['height'])
picture = Image.open(r'img.png')
picture = picture.crop((left, top, right, bottom))  # 定位区块截图
picture.save(r'img1.png')
driver.quit()

方法四

  • 全网页截图
  • 优点:PhantomJS可以截全图
  • 缺点:Chrome和Firefox只能截可视区域
from selenium import webdriverdriver = webdriver.Chrome(executable_path=r".\chromedriver.exe")
driver.get('https://blog.csdn.net/weixin_43695063/article/details/100701356') # 一篇带有滚动条博客的url
driver.find_element_by_xpath('//*[@id="container"]').screenshot_as_png
with open('image/img.png', 'wb') as f:f.write(img)
driver.quit()

方法五

  • 全网页截图
  • 优点:模拟鼠标键盘操作浏览器
  • 缺点:系统运行期间,不可以动光标和键盘
import time
import pyperclip,pyautogui
import win32api
import win32con
from selenium import webdriverdriver = webdriver.Chrome(executable_path=r".\chromedriver.exe")
driver.get('https://blog.csdn.net/weixin_43695063/article/details/100701356') # 一篇带有滚动条博客的urldef baocun_pdf():# ctrl+ptime.sleep(2)win32api.keybd_event(17, 0, 0, 0)win32api.keybd_event(80, 0, 0, 0)win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)win32api.keybd_event(80, 0, win32con.KEYEVENTF_KEYUP, 0)time.sleep(1)#两次tapwin32api.keybd_event(9, 0, 0, 0)win32api.keybd_event(9, 0, win32con.KEYEVENTF_KEYUP, 0)win32api.keybd_event(9, 0, 0, 0)win32api.keybd_event(9, 0, win32con.KEYEVENTF_KEYUP, 0)time.sleep(1)#一次下win32api.keybd_event(40, 0, 0, 0)win32api.keybd_event(40, 0, win32con.KEYEVENTF_KEYUP, 0)for i in range(7):time.sleep(0.3)win32api.keybd_event(9, 0, 0, 0)win32api.keybd_event(9, 0, win32con.KEYEVENTF_KEYUP, 0)time.sleep(3)#点击保存win32api.keybd_event(13, 0, 0, 0)win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0)time.sleep(1)#将地址以及文件名复制pic_dir = r'C:\install\.pdf'pyperclip.copy(pic_dir)#粘贴pyautogui.hotkey('ctrlleft','V')time.sleep(1)#确认保存pyautogui.press('enter')time.sleep(1)try:win32api.keybd_event(37, 0, 0, 0)win32api.keybd_event(37, 0, win32con.KEYEVENTF_KEYUP, 0)time.sleep(1)pyautogui.press('enter')except:passbaocun_pdf()
driver.quit()

方法六

  • 可视化浏览器截图
  • 优点:可视化浏览器截带有滚动条的长图
  • 缺点: 自定义截取高度和次数,图片与图片之间可能会有重复部分,完美衔接需要调试滑动的高度
import fitz
import pdfkit
import requests
from selenium import webdriver
import time
import glob
import osimport warnings
warnings.simplefilter("ignore", ResourceWarning)chrome_options =webdriver.ChromeOptions()
chrome_options.add_argument('--start-maximized ')
# chrome_options.add_argument('--headless')
# chrome_options.add_argument('--disable-gpu')
# chrome_options.add_argument("window-size=1920,1080")
driver = webdriver.Chrome(executable_path=r".\chromedriver.exe",options=chrome_options)driver.get('https://blog.csdn.net/weixin_43695063/article/details/100701356') # 一篇带有滚动条博客的url
driver.maximize_window()
driver.fullscreen_window()def get_img_pdf_return_url(driver):num=0num_while=936 #每次截取的后,滚动条滚动的高度,根据可视化浏览器的高度拟定(自己定)while True:driver.save_screenshot("C:/Users/Administrator/Desktop/img_pdf/img{}.png".format(num))js="var q=document.documentElement.scrollTop={}".format(num_while)driver.execute_script(js)time.sleep(0.2)print("截图:",num_while,"成功")# print(driver.title)num+=1if num_while >7198: # 滑动总高度之后,退出循环截取(总高度自己定)breaknum_while+=936 doc = fitz.open()# print("doc:", f)# 从规定路径下读取图片,确保按文件名排序for img in sorted(glob.glob(r"C:\Users\Administrator\Desktop\img_pdf\*.png")):print(img)imgdoc = fitz.open(img)# print("imgdoc",imgdoc)# 使用图片创建单页的 PDFpdfbytes = imgdoc.convertToPDF()# print("pdfbytes", pdfbytes)# 将当前页插入文档imgpdf = fitz.open("pdf", pdfbytes)doc.insertPDF(imgpdf)if os.path.exists(r"C:\Users\Administrator\Desktop\img_pdf\aa.pdf"): #根据自己的路径自定义os.remove(r"C:\Users\Administrator\Desktop\img_pdf\aa.pdf")doc.save(r"C:\Users\Administrator\Desktop\img_pdf\aa.pdf")doc.close()get_img_pdf_return_url(driver)
driver.quit()

方法七(明天写…)

  • 优点:
  • 缺点:

selenium网页截图总结相关推荐

  1. 使用selenium网页截图,解决截图不全问题

    #!/usr/bin/python3 # -*- coding:utf-8 -*-import time from selenium import webdriver from selenium.we ...

  2. java selenium 网页截图 可控制分辨率

    项目地址如下 https://gitee.com/ogisosetsuna_kong/screenshot screenshot 用SpringBoot以及selenium实现了一个无chromeGu ...

  3. 大型情感剧集Selenium:8_selenium网页截图的四种方法

    有时候,有时候,你会相信一切有尽头-当你的代码走到了尽头,那么保留最后一刻的状态尤为重要,此时你该如何操作?记录日志-没有将浏览器当前的状态进行截图来的直观! 那么,selenium截取截屏,有哪些方 ...

  4. 通过网址自动网页截图(Selenium实现)

      在自动化测试或者想要批量获取网页首页图片时,就需要一个脚本实现自动化网页截图,我们可以通过Selenium实现这个功能. 1. 安装Selenium pip install selenium 2. ...

  5. WebScreenshot: ASP.NET Core + Selenium 实现 网页截图

    WebScreenshot ASP.NET Core + Selenium 实现 网页截图 仓库 GitHub: https://github.com/yiyungent/WebScreenshot ...

  6. 网页截图和svg模版动态生成图片Java实现

    网页截图和svg模版动态生成图片Java实现 使用场景 需要Java语言动态生成图片 用流程图简单说明下我这边工作中使用的场景 仅供参考 所以这里就需要生成证书了 我先给大家看下最终实现的图片效果 这 ...

  7. java网页截图_java-selenium 实现网页截图

    使用firefox浏览器无头模式在内存里渲染页面,然后用selenium操作浏览器并解析截图.需要安装firefox(也支持chrome),然后下载firefox 驱动 详见:https://gith ...

  8. Selenium ChromeDriver 截图标记指定元素的方法

    phantomjs 是无头浏览器的代表,可以截全屏的图,对于标记元素来说是很简单的;不过最新的 Selenium 版本表示不再支持:所以只能使用其他的代理品; 正好 chrome ,Firefox 等 ...

  9. 网页截图并自动放入word文档【python】

    这里写自定义目录标题 使用场景 准备环境 实现逻辑 引入包 截图模块 访问mysql数据库,获取标题和网址 截图并保存为word 使用场景 从mysql数据库中读取需求标题和对应网页传参,提供网页截图 ...

  10. Python实现网页截图,附带完整代码

    Python实现网页截图,附带完整代码 在现代化的互联网时代,我们经常需要对网页进行截图以便于保存.共享以及其他种种用途.Python是一种功能强大的编程语言,可以帮助我们轻松地实现网页截图功能.本文 ...

最新文章

  1. 2022-2028年中国操作系统行业深度调研及投资前景预测报告
  2. UI设计的发展前景怎么样?
  3. 《预训练周刊》第33期:艾伦AI研究所等 | 预训练语言模型的高效分层域适应
  4. 单点登录系统实现基于SpringBoot
  5. linux下获取线程号
  6. 三招武林绝学带你玩转「强化学习」
  7. 堡垒机CrazyEye安装脚本
  8. 加密机工作原理_端子机压力检测装置工作原理
  9. 格力接受美国5.83亿巨额罚款!官方紧急回应...
  10. C# VS 调试 动态加载的 DLL
  11. Python学习笔记(一)——基本知识点
  12. JS:ES6-8 Promise入门
  13. vs2010 如何更改界面
  14. 彻底删除mysql server 2005_sql2005卸载工具(sql server 2005卸载工具)
  15. 基于分布式光纤侦听技术的岛礁近岸防卫监测
  16. 数学建模-二胎政策对中国人口的影响
  17. 一图掌握ICT项目管理流程图「实例」
  18. 共阳极管的代码_共阳极数码管-共阳极数码管显示
  19. html怎么将坐标轴变成百分比,Excel中进行设置双坐标及次坐标轴显示百分比的方法...
  20. IMDB电影评论文本分类

热门文章

  1. 南丁格尔玫瑰图-修改扇形块的颜色与玫瑰图添加图片与文字
  2. 梯度提升(Gradient Boosting)算法
  3. 万字干货!《增长黑客》背后的逻辑
  4. 【吐血推荐】什么是领域驱动设计?DDD?
  5. CTF练习题——bugkuCTF 网站被黑题目思路分析
  6. 【初学者入门C语言】之习题篇(一)
  7. 如何从本地硬盘启动计算机,解密:如何在计算机BIOS中设置硬盘启动
  8. iOS开发 关于YY_Model中,modelContainerPropertyGenericClass解析数组出现崩溃问题
  9. 青龙面板滴滴果园自动签到
  10. httpclient-4.3.6工具类,方便直接使用