本文最后更新于:2024年5月7日 下午

Selenium 是一个包含一系列工具和库的网页自动化工程,本文记录使用 Selenium 在 Windows 操作系统 Python 下实现网页自动截图的方法。

简介

Selenium 是一个包含一系列工具和库的网页自动化工程, 它提供了用于模拟用户与浏览器交互的扩展,用于缩放浏览器分配的分发服务器,以及用于实现 W3C WebDriver 规范的基础设施,该规范允许您为所有主要的 Web 浏览器编写可互换的代码。

Selenium 是由志愿者贡献者提供的,他们投入了数千小时的自己的时间,使得源代码免费提供给任何人使用、享受和改进。

Chrome 安装

Python 安装 Selenium

  • 4.8 版本的 Selenium 安装已经十分方便了, pip 直接安装即可
1
pip install selenium 
  • 实现基本截图功能:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from selenium import webdriver
import time
import os


driver = webdriver.Chrome()
try:
driver.get("http://www.zywvvd.com")
time.sleep(10) # 延迟10s截图
img_name = time.strftime(
'%Y-%m-%d', time.localtime(time.time())) # 截屏名称 时间表示
img = "%s.png" % os.path.join('.', img_name) # 图片
driver.get_screenshot_as_file(img) # 保存截图
except Exception as e:
print(e)
driver.close() # 关闭浏览器
driver.quit()

  • 截图结果

  • 可以通过 driver.set_window_size(width, height) 修改截图尺寸
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

from selenium import webdriver
import time
import os


driver = webdriver.Chrome()
try:
width = 1920
height = 1080
driver.set_window_size(width, height)
driver.get("http://www.zywvvd.com")

time.sleep(10) # 延迟10s截图
img_name = time.strftime(
'%Y-%m-%d', time.localtime(time.time())) # 截屏名称 时间表示
img = "%s.png" % os.path.join('.', img_name) # 图片

driver.get_screenshot_as_file(img) # 保存截图
except Exception as e:
print(e)
driver.close() # 关闭浏览器
driver.quit()

  • 截图效果

  • 还可以通过 driver.set_page_load_timeout(3) 设置 driver.get 访问的超时时间,超过时间没有成功访问就会抛出异常
1
2
3
4
5
6
7
8
9
10
visitURL = "http://www.google.com"
#限定页面加载时间最大为3秒
driver.set_page_load_timeout(3)
try:
driver.get(visitURL)
except TimeoutException:
print u'页面加载超时!'
#当页面加载时间超过设定时间,通过执行Javascript来停止载,然后继续执行后续操作
driver.execute_script('window.stop()')
time.sleep(2)

参考资料



文章链接:
https://www.zywvvd.com/notes/tools/selenium-screenshot/selenium-screenshot/


“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信二维码

微信支付

支付宝二维码

支付宝支付

Windows 下 Python 使用浏览器自动化工具 Selenium 实现网页自动截图
https://www.zywvvd.com/notes/tools/selenium-screenshot/selenium-screenshot/
作者
Yiwei Zhang
发布于
2023年2月7日
许可协议