こんにちは、こちょすです。
今回はpythonとseleniumを使って、Webの検索を自動化する方法についてご紹介したいと思います。
具体的には、画面上の入力ボックスに入力したり、それをsubmit(送信)して、結果を取得してみようと思います!
pythonはまだそんなに使ってことないよーという方や、
pythonの基礎文法はわかったから、何か作り物をしてみたい!という人は以下の記事もぜひ読んでください!🙏
-
-
pythonで電卓を作ってtkinterの使い方をマスターしよう!
続きを見る
こんな方におすすめ
- pythonを使ってWeb検索の自動化をしてみたい
- seleniumを使って画面テストの自動化を検討している
- Webからの検索情報収集を自動でやりたい
目次
Web検索自動化への道1 関連モジュールのインストール
Web検索を自動化するための第一歩として、まずは関連モジュールをインストールしていきましょう!
画面操作自動化ライブラリ seleniumのインストール
まずはpipコマンドでseleniumをインストールしていきましょう!💪
command
$ pip install selenium
Web検索時のドライバー ChromeDriverのインストール
次にChromeの画面操作のために必要なドライバーのインストールをしましょう!🔥
pythonでのみ使う場合には、pipコマンドでインストールが可能です。
ここで注意ポイント!
注意ポイント
自分の使っているChromeのバージョンとChromeDriverのバージョンが合っていないと、seleniumが正しく動きません!
一方でpipで普通にインストールしてしまうと、最新バージョンを持ってきてしまうので、pipでバージョンを指定してあげましょう!
もしもバージョン違いが原因で動かない場合、実行時に以下のようなエラーが出ます。
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version XX
というわけで、まずは自分のChromeのバージョンを確認します。
Chromeのブラウザの右上にある「・・・」>設定>Cromeについて
または、上のツールバーのChrome>Google Chromeについて
から確認が可能です。
今回の僕のバージョンは83.0.4103.116であることがわかりました!
次に以下の公式ページで、どのバージョンのドライバーを使えばいいかを確認します。
Current Releasesのところにあるとおり、ChromeDriver 83.0.4103.39を使えば良いようです。
念のため、pipのインストール元であるPyPIにもあるかを確認しておきましょう。
ではバージョンの確認はできたので、driverのインストールをしましょう!
pipで最新バージョン以外を指定する場合には「==」を使えばOKです。
command
pip install chromedriver-binary==83.0.4103.39.0
ではこれで準備完了です!👏👏
Web検索自動化への道2 自動で検索してみる
必要なモジュールの準備は整ったので、次は実際にWeb検索自動化ツールを動かしていきましょう!
まずは動くかどうか確認するため、ChromeDriverのGetStartedのコードを少しだけ修正して、実行してみましょう。
このコードではgoogleの検索画面を開き、検索ボックスに対して「ChromeDriver」と打ち込んでEnterキーを押す処理です。
import time from selenium import webdriver import chromedriver_binary # Optional argument, if not specified will search path. driver = webdriver.Chrome() driver.get('http://www.google.com/') time.sleep(5) # Let the user actually see something! search_box = driver.find_element_by_name('q') search_box.send_keys('ChromeDriver') search_box.submit() time.sleep(5) # Let the user actually see something! driver.quit()
うまく動いていれば、検索結果に遷移します!以下のように検索結果が表示されれば成功です!💪
Web検索自動化への道3 主なブラウザ操作の書き方
最後に、主なブラウザ操作について、コードではどう書けばいいのかをご紹介します!
ここまで習得すれば、ほぼWEB検索を自由自在に扱えるようになっているはず!
さらに詳しく知りたい方はseleniumの公式リファレンスをみてください!
👇👇👇
入力ボックスへの文字入力
上の例でも出てきましたが、入力ボックス(idがelement_nameと仮定)の要素に対して キーボード入力がしたい場合には以下のように書きます!
element_name = driver.find_element_by_id('element_name') element_name.send_keys('入力内容')
要素のクリック
ボタンなどをクリックしたい場合には以下のように書きます!
element_name = driver.find_element_by_id('element_name') element_name.click()
プルダウンから選択
都道府県や年など、プルダウンから選ぶ必要がある場合には、以下のように書きます!(リストの親のidがelement_name_typeと仮定)
※Selectモジュールが必要なので、importしています。
from selenium.webdriver.support.ui import Select element_name_type = driver.find_element_by_id('element_name_type') element_name_type_select = Select(element_name_type) element_name_type_select.select_by_value('選択肢のバリュー値')
いかがでしたか??
普段の業務の中で、自動化して楽にできるものがないか、毎日のようにルーティーンとして行っていることなどがないかを考えて、自分だけの自動化ツールを作ってみてくださいね!💪