Selenium 是一个包含一系列工具和库的网页自动化工程,本文记录使用 Selenium 在 Windows 操作系统 Python 下实现网页自动截图的方法。
简介
Selenium 是一个包含一系列工具和库的网页自动化工程, 它提供了用于模拟用户与浏览器交互的扩展,用于缩放浏览器分配的分发服务器,以及用于实现 W3C WebDriver 规范的基础设施,该规范允许您为所有主要的 Web 浏览器编写可互换的代码。
Selenium 是由志愿者贡献者提供的,他们投入了数千小时的自己的时间,使得源代码免费提供给任何人使用、享受和改进。
Chrome 安装
Python 安装 Selenium
- 4.8 版本的 Selenium 安装已经十分方便了, pip 直接安装即可
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 osdriver = 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 osdriver = 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/