Selenium使ってみた(Python)
最近スクレイピングを始めたのですが,javascriptが使われている場合はブラウザ経由でないと操作ができないことを知ったのでseleniumを試してみることにしました.Pythonからのseleniumインストールは非常に簡単で,
pip install selenium
で一発でいけます.まずはseleniumからChromeを起動してみます.
#encoding:utf-8 from selenium import webdriver browser = webdriver.Chrome(executable_path='Chromedriverのパス') browser.get('http://seleniumhq.org/')
Chromeを起動するためにはChromeDriverとよばれるChromeを操作するためのドライバーが必要となります.ドライバーがない場合以下のサイトからダウンロードしてください.
Downloads - ChromeDriver - WebDriver for Chrome
コード中にダウンロードしたドライバのパスを入力します.私の環境ではドライバのパスを指定してあげないと以下の様なエラーがでました.
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH
ニコニコ動画へのログイン
練習がてらニコニコ動画へseleniumを使って自動的にログインしてみます.#encoding:utf-8 from selenium import webdriver browser = webdriver.Chrome(executable_path='Chromedriverのパス') browser.get('ニコニコ動画のログインページのURL') browser.find_element_by_id("input__mailtel").send_keys("メールアドレス") browser.find_element_by_id("input__password").send_keys("パスワード") browser.find_element_by_id("login__submit").click()
Chromeの代わりにPhantomJSを使う
ChromeだといちいちGUIが立ち上がるため重いです.PhantomJSをドライバに指定するとGUIが立ち上がらなくて済みます.以下のサイトからダウンロードして,Download | PhantomJS
以下のコードでPhantomJSでログインできます.
#encoding:utf-8 from selenium import webdriver browser = webdriver.PhantomJS(executable_path="PhantomJSのパス") browser.get('ニコニコ動画のログインページのURL') browser.find_element_by_id("input__mailtel").send_keys("メールアドレス") browser.find_element_by_id("input__password").send_keys("パスワード") browser.find_element_by_id("login__submit").click()