python アプリ開発

【サンプルコード付き!】PythonでWeb検索を自動化する方法(selenium)

こんにちは、こちょすです。

 

今回は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('選択肢のバリュー値')

 

 

いかがでしたか??

 

普段の業務の中で、自動化して楽にできるものがないか、毎日のようにルーティーンとして行っていることなどがないかを考えて、自分だけの自動化ツールを作ってみてくださいね!💪

-python, アプリ開発

© 2022 これブロ