みなさん、こんにちは。どんぶラッコです。
今回は、seleniumとchromedriverを使ってpythonでスクレイピングを整えましょう!というお話です。
ざっくり説明しておくと、seleniumを使うと、ブラウザの操作をプログラ厶を使って行うことができます。
ログインページに遷移して、メールアドレスとパスワードを入力してログインボタンを押してほしい…
そんな操作が可能です。
一方、chromedriverというのは、seleniumが動かすブラウザです
chromeのブラウザ機械的に立ち上げるために必要なパーツです。
seleniumで操作できるブラウザは沢山あります。少し前はphantomjsが流行っていましたが、メンテナンスがもうされなくなってしまいました。
なので、開発現場でもよく使われるchromeベースのドライバが多く利用されています。
ということで、早速セットアップしてみましょう!
Chromeのインストール
大前提としてChromeのブラウザ本体がインストールされていないと実行されません。
Chromeブラウザをお持ちでない方は予めインストールをお願いします。
Seleniumのインストール
これは簡単。pip
を使ってインストールしちゃいましょう。
pip install selenium
Chrome Driver のインストール
macの場合、homebrewを使ってセットアップするのが1番早いです。
homebrewをまだインストールしていない場合、公式サイトの手順に従ってセットアップしましょう。
その後、下記コマンドを入力します。
brew tap homebrew/cask
brew cask install chromedriver
ちなみに、cask とはhomebrewの拡張パッケージです。これもざっくり説明すると、GUI側の機能をhomebrewで管理しちゃおうぜ!なやつです。
サンプルプログラムを動かしてみよう!
ここまで出来たら準備完了!動くかどうか試してみましょう
こんなサンプルサイトを作成しました。
https://cha1ra.github.io/scrayping-handson/index.html
テストのためだけに作られた、本当に簡単なサイトです笑
この中の、入力画面の操作を実際にやってみましょう。
テキスト入力フォームに文字を入力し、submitボタンを押すと、 Hello, *** の形で入力テキストが表示されます。
では作業してみましょう!
任意の場所に test.py を作成し、以下のプログラムを貼り付けます。
from selenium import webdriver
# 対象のサイトに遷移する
browser.get('https://cha1ra.github.io/scrayping-handson/index.html')
# 入力フォームを選択する
el = browser.find_element_by_css_selector('#id_text')
# 入力フォーム内をリセットする
el.clear()
# 入力フォームに文字を入力する
el.send_keys("test")
# ボタンを選択する
button = browser.find_element_by_css_selector('button')
# ボタンをクリックする
button.click()
# id=result にある文章を表示する
print(browser.find_element_by_css_selector('#result').text)
そのあと、ターミナルから
python3 test.py
を実行してみましょう。
Hello, test と表示されていれば成功です!
エラー: 開発元が未確認のため開ません
chromedriver が開発元不明のエラーで開けないことがあるかもしれせん。
その場合は、システム環境設定 → セキュリティとプライバシー → 一般 からを「このまま開く」ボタンを選択してください。
みなさんもチャレンジしてみてください♪