今日もPythonを学んでいきましょう!
SeleniumやChromedriverというものを用いてWebページのスクリーンショットが取れる!
できることが増えるのは嬉しいですよね!
この記事では自動で検索をしてスクリーンショットを撮ることをしていきます。
Seleniumってなに?
出だしから訳分からんのが出てきたで、、、
大丈夫です、言葉の見た目が難しそうな感じを醸し出していますが、役割は決まっています。
様々なブラウザを自動操作してくれるツール(ドライバー)です。つまり、私たちが普段ブラウザ(Google Chromeとかsafariとか)を使ってする動作を代わりに行ってくれる存在です。
例えば、
- Googleのブラウザを開いて
- 検索欄に調べたいことを入力して
- 検索ボタンをクリック!(Enter)
みたいなことです。
補足としてSeleniumが生まれた経緯としては、
みたいな感じですかね。まとめるとブラウザ操作を自動化したいならSeleniumです。
詳しく知りたい!!という場合には公式ページに勝るものはありません。
Selenium公式のページにも
Seleniumブラウザー自動化プロジェクトと書かれています。
色々と見ていると難しい用語がいっぱい出てきて
なんだかそごそーよくわからないー寝るー
と私はなりますが、いつかはじっくり読み込む日が来るのかもしれません。
Chromedriverってなに?
Google Chromeを制御する為のツール(ドライバー)です。
Seleniumを使いたいとなった時に必要になるのがブラウザですが、制御をするには各ブラウザに対応したドライバーが必要になります。
今回は多く使われているGoogle ChromeのドライバーであるChromedriverを使用したいと思います。
Seleniumをインストールしよう!
まずはSeleniumから。
ターミナル(コマンドプロンプト)を開いて以下を入力します。
$ pip install selenium
Enterを押してseleniumがインストールできます。
Chromedriverをダウンロードしよう!
Chromeのバージョンを確認する
次にChromedriverのインストールに移りたいと思います。
その前に現在使用しているGoogle Chromeのversionを確認しましょう!
手順はこちらです。
- Google chromeを開いて右上をクリック
- 一覧が表示されるので、設定をクリック
- 設定画面の左下に表示されているChromeについてをクリック
- versionが表示されている(できれば最新バージョンに更新する)
手順2の一覧表示の中に”Chromeについて”がある場合はそれをクリックすればVersionが見られます!
手順を画像付きでも一応載せておきますので、ご参考に。
1. Google chromeを開いて右上をクリック
2. 設定をクリック(Chromeについて がある場合はそれをクリック)
3. Chromeについてをクリック
4. 以下の画像のようにVersionが表示されている。最新版でなければ更新しておく(すぐ終わります)
バージョン: 90.0.4430.85(Official Build) (x86_64)
これでバージョン確認ができました!
バージョンにあったドライバーをインストール
公式サイトからドライバーをインストールします。まずは以下のリンクに飛ぶと
⬇︎のような画面が表示されます
先ほどの節で確認した現在のChromeバージョンにあった番号のドライバーをインストールします。
数字が羅列していますが、先頭の数字だけ見れば大丈夫です!
現状の私を例にすると、
90.0.4430.85(Official Build) (x86_64)
先頭の数字は90なので、ChromeDriver 90…と書かれているリンクをクリックします。
すると以下のようなページに遷移します。
今お使いのパソコンに合わせてファイルを選択します。
Macなら chromedriver mac64.zip
Windowsなら chromdriver win32.zip
クリックするとzipファイルのダウンロードが開始され、終了したらフォルダを開きましょう
ファイルがダウンロードされているはずですので、これをダブルクリックしてファイルを解凍しましょう!
Chromedriverというexeファイルが現れるはずですので、このファイルを自身がコードを保存しているフォルダに移動しておきましょう!
ちなみに私の場合は書類フォルダ内にtest_chromeフォルダを作成して保存しました。
保存したら、ターミナル(コマンドプロンプト)でChromedriver binaryをインストールしておきましょう!Pythonでドライバーを使用するのに必要になります。
$ pip install chromedriver-binary
これで準備は整いました。お疲れ様です。
自動で検索してみる
普段調べるときの流れは⬇︎こんな感じですよね。
- Google Chromeを起動
- 検索欄を見つけて
- 調べたいワードを入力&送信
上記を頭に入れていれば理解も早いはずです。
全体のコードはこちら⬇︎です。うちではかわいい文鳥ちゃんを飼っているので”文鳥かわいい”で検索してみました
import chromedriver_binary
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get('https://www.google.co.jp/')
input_element = driver.find_element_by_name('q')
input_element.send_keys('文鳥かわいい')
input_element.send_keys(Keys.RETURN)
パート毎に見ていきましょう。
最初の3行はChromedriverを動かす&検索するのに必要なツールのセットです。
import chromedriver_binary
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
次の行で、Chromeを起動して(ChromeのWebDriverオブジェクトを作成)
driver = webdriver.Chrome()
URLを指定してGoogleのトップ画面を開きます
driver.get('https://www.google.co.jp/')
次の3行で、検索フォームを見つけて、検索したいワードを入力して送信をしています。
input_element = driver.find_element_by_name('q')
input_element.send_keys('文鳥かわいい')
input_element.send_keys(Keys.RETURN)
コードを実行するとこんな感じで、検索したいワードで検索ができていることがわかります。
ここまでできたら、コードの最後に次のコードを書いてみましょう
driver.quit()
コードを実行すると調べた後にウィンドウが閉じられるようになるはずです。調べた後に閉じたい時には便利そうです。
スクリーンショットしてみる
スクリーンショットを勝手にやってもらいましょう。
なんと以下のコードを付け加えるだけです。
driver.save_screenshot("result.png")
これらをコードに含めて実行してみましょう
今までのを全部まとめたコード⬇︎
import chromedriver_binary
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get('https://www.google.co.jp/')
input_element = driver.find_element_by_name('q')
input_element.send_keys('文鳥かわいい')
input_element.send_keys(Keys.RETURN)
driver.save_screenshot("result.png")
driver.quit()
おおおおお、ばっちり保存されてる!!!(うるさい)
というわけで、
自動で検索をしてスクリーンショットを撮ることができました!
どこかで応用できそうですね、思いついたら実際にやってみましょう!
ご質問等ありましたら、お気軽にどうぞ!
コメント