行いたいこと
前回画面のスクロールを行いました。
今回はSeleniumでChromeを起動 > 画面を下へスクロールして、
表示されているブラウザのスクリーンショット(範囲指定)
を行いたいと思います。
■ Google検索後に範囲指定してスクリーンショット
コード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
from selenium import webdriver from time import sleep from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import Select import pyautogui # /*------------------------------------------ # ドライバーの準備 # --------------------------------------------*/ def get_driver(): # chromeドライバーまでのパスを格納する driver = webdriver.Chrome("chromedriver_win32/chromedriver.exe") driver.maximize_window() return driver # /*------------------------------------------ # GoogleのURLを取得する # --------------------------------------------*/ def get_top_page(driver): # 検索キーワード key_word = 'python' # Google検索 url = 'https://www.google.com/search?q={}'.format(key_word) # URLへ遷移する driver.get(url) sleep(3) # 画面スクロール get_scroll(driver) # #インスタンスウインドウのみ閉じる # driver.close() # /*------------------------------------------ # スクロール処理と画面キャプチャ # --------------------------------------------*/ def get_scroll(driver): # 下に1000 driver.execute_script("window.scrollTo(0, 1000);") sleep(5) # 範囲を指定してスクリーンショットを取得する sc_name = 'キャプチャ範囲指定.png' sc_scope = (100, 400, 700, 700) pyautogui.screenshot(sc_name, region=sc_scope) # /*------------------------------------------ # main処理 # --------------------------------------------*/ if __name__ == "__main__": # ブラウザのdriver取得 driver = get_driver() # ページのソース取得 search_key = get_top_page(driver) |
解説
範囲指定するために「pyautogui」を使用します。
使用する為に「import pyautogui」が必要となります。
実際の範囲指定のコード部分は以下。
Chromeで表示されている状態で
「sc_scope」で指定した範囲をスクリーンショットを取得しています。
1 2 3 4 5 |
# 範囲を指定してスクリーンショットを取得する sc_name = 'キャプチャ範囲指定.png' sc_scope = (100, 400, 700, 700) pyautogui.screenshot(sc_name, region=sc_scope) |
今回は以上となります。
最後までお読みいただきありがとうございました!