欢迎来到赛兔子家园

Selenium-截图

在selenium中,截取网页的图片有多种方式,这里简单介绍三种截图:

  • 截整个网页。
  • 截取可见区域。
  • 截取指定区域,即截取网页中的指定图片,如截取验证码部分的图片。
1、截取当前可见页面的图
#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'tian'
__data__ = '2021/2/24 17:06'

import time
from selenium import webdriver
driver = webdriver.Chrome()

try:
    time.sleep(2)
    driver.get("https://pythonav.com/login/")
    driver.save_screenshot("a.png") # 保存当前url页面屏幕截图,保存图片的类型必须是.png,命名a.png的图片
    print(driver.title) # 百度一下,你就知道

except Exception as error:
    print("报错信息:{0}".format(error))

finally:
    time.sleep(5)
    driver.quit()
2、截取指定区域图
#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'tian'
__data__ = '2021/2/24 17:06'

import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.maximize_window()

full_img = "./a.png"
code_img = "./b.png"

try:
    time.sleep(2)
    driver.get("https://pythonav.com/login/")
    driver.save_screenshot(full_img)  # 截取可见区域的图片
    imageCode = driver.find_element_by_id("image_code")  # 定位验证码图片
    imageCode.screenshot(code_img)  # 利用imageCode对象截取验证码区域的图片

except Exception as error:
    print("报错信息:{0}".format(error))

finally:
    time.sleep(5)
    driver.quit()
3、截取整个网页的图

需求:网页内容过多时,需要通过滚动条下拉查看。如何截取整个网页的图片呢?

通过无头浏览器PhantomJS来截取:

# 网页需要下拉浏览器滚动条才能查看完毕,截取整个长网页的图
from selenium import webdriver
driver = webdriver.PhantomJS(executable_path=r"C:\Python\Python37\Scripts\phantomjs\bin\phantomjs.exe") # 无头浏览器安装路径
driver.implicitly_wait(time_to_wait=10)
driver.get("https://pythonav.com/project/detail/1/")
driver.save_screenshot("a.png")
driver.quit()

posted on 2021-02-24 19:04  赛兔子  阅读(367)  评论(0编辑  收藏  举报

导航