イチゾーのブログ

PythonとSeleniumでブラウザの自動操作

スポンサードリンク

PythonとSeleniumでブラウザの自動操作

今回は、PythonからSeleniumを動かしてブラウザの自動操作をやってみます。

前回の「PythonのRequestsを使って検索結果を取得する」で、
うまく検索結果を取得できなかったサイトがあったので
今回はSeleniumを使用してみます。

Requestsで取得できなかったのは、見えないところで何らかのパラメーターを渡しているのか、
header情報が必要なのか、画面表示の際にJavaScriptが動いているようなので
これが何かをやっているのか等々なのですが、
ブラウザ操作からは簡単に結果を取得できるので
Requestsは早々に諦めてSeleniumを使ってみることにしました。

Seleniumとは?

ブラウザの自動操作ツールです。

Pythonから操作できるということで、Python勉強中の私は
勉強も兼ねてSeleniumを使ってみたいと思います。

まずはSeleniumのインストールです。

これはpipから行えます。

私はWindows環境なので、コマンドプロンプトを管理者権限で立ち上げて
以下のコマンドを実行します。

すると以下のようにインストールされます。

ブラウザはChromeを使いたいのですが、
ドライバが必要なようです。

ChromeDriverをダウンロードサイトからダウンロードします。

「Latest Release:」の後ろの「ChromeDriver 2.26」(2016/12/22現在)の
リンクをクリックするとファイル一覧が表示されます。

「chromedriver_win32.zip」をダウンロードします。

解凍すると「chromedriver.exe」というファイルが現れるので、
これをPythonファイルと同じフォルダ内に移動します。

Pythonのプログラムを実装

seleniumのwebdriverを使用するために、「from selenium import webdriver」を宣言します。

対象ページのURLと検索キーワードを設定しておきます。

search_web()内では、「webdriver.Chrome(‘./chromedriver’)」で
同じディレクトリ内にあるchromedriverを起動します。

「browser.get(url)」でブラウザにURLを渡します。

検索キーワードの入力ボックスのnameが「p」だったので、
「search_input = browser.find_element_by_name(‘p’)」として指定します。

「search_input.send_keys(keyword)」でキーワードをセットします。

「search_input.submit()」で検索を実行します。

検索結果は「browser.page_source」から取得します。

実際に実行してみると、まずchromedriverが起動し、
次にChromeが立ち上がります。

http://search.yahoo.co.jp/searchに移動し、
検索ボックスに「python」が入力されます。

さらに検索が実行され、検索結果ページが表示されました。

最後にChromeが閉じ、検索結果ページのソースが出力されました。

これだけ簡単な操作だと、実装コードも少なくて簡単ですね。

ちなみに、「検索」ボタンがsubmitではなくて、
onclickでJavasScriptを実行している場合は、
「search_input.submit()」の部分を下記で置き換えます。

スポンサードリンク