1. 程式人生 > >selenium截圖儲存、擷取特定區域的圖片

selenium截圖儲存、擷取特定區域的圖片

    browser = webdriver.Chrome()
    wait = WebDriverWait(browser, 10)
    browser.get('https://www.baidu.com')
    time.sleep(3)

    browser.get_screenshot_as_file('C:\\Users\\zd\\Desktop\\baidu.png')
    # 或者 
    # driver.save_screenshot('full_snap.png')
    # page_snap_obj=Image.open('full_snap.png')

注意file中是兩個\\

以下是通過擷取全屏,再定位到目標(驗證碼)圖片進行擷取目標圖片並儲存。

from PIL import Image

def get_snap(driver):  # 對目標網頁進行截圖。這裡截的是全屏
    driver.save_screenshot('full_snap.png')
    page_snap_obj=Image.open('full_snap.png')
    return page_snap_obj


def get_image(driver): # 對驗證碼所在位置進行定位,然後擷取驗證碼圖片
    img = driver.find_element_by_class_name('code')
    time.sleep(2)
    location = img.location
    print(location)
    size = img.size
    left = location['x']
    top = location['y']
    right = left + size['width']
    bottom = top + size['height']

    page_snap_obj = get_snap(driver)
    image_obj = page_snap_obj.crop((left, top, right, bottom))
    # image_obj.show()
    return image_obj  # 得到的就是驗證碼