PythonでWEBページのスクレイピングなどをすることができる、seleniumモジュールのwebdriverのインストールから実際の使い方と、主要メソッドの一覧をまとめています。
Webdriverのインストールと設定
webdriver.Chrome(‘chromedriver.exe’)とセットで使うため、chromedriver.exeファイルが同じ階層にある必要があります。
chromedriver.exeファイルの取得
chromedriver.chromium.orgのページからchromedriver.exeファイルをダウンロードします。
現在の安定版(current stable release)を選択します。
自分のOSに合ったもZipファイルを選択します。
DLしたファイルを処理を記述する .pyファイルと同じ階層に保存します。
webdriverのインストール
importを使って、seleniumモジュールのwebdriverをインストールします。
変数urlに取得してくるWEBページのURLを記述します。
from selenium import webdriver
browser = webdriver.Chrome('chromedriver.exe')
url = 'https://example.com/'
browser.get(url)
●from selenium import webdriver
seleniumモジュールのwebdriverをインストール
●browser = webdriver.Chrome('chromedriver.exe')
webdriverでChromeを起動
●url = 'https://example.com/'
URLの指定
●browser.get(url)
getメソッドで指定したurlを開く
Webdriverの主要メソッド一覧
要素指定なしで使えるメソッド
– get(指定したぺージを開く)
– back(戻る)
– forward(進む)
– refresh(更新する)
– current_url(現在のURLを取得)
– title(ページタイトルの取得)
– page_source(ページソースの取得)
– close(現在のウィンドウを閉じる)
– quit(すべてのウィンドウを閉じる)
– maximize_window(ウィンドウの最大化)
メソッドの使い方と一例
browserオブジェクトに対して使います。
例:browser.get(https://~)
└ 指定のURLを開く
要素を指定するメソッド
基本的な考え方はJavaScriptに似ています。要素を1つ指定するか、複数指定するかで使うメソッドが異なります。
1つの要素を指定する
– find_element_by_id
– find_element_by_class_name
– find_element_by_css_selector
– find_element_by_name
– find_element_by_tag_name
– find_element_by_xpath
– find_element_by_link_text
複数の要素を指定する
– find_elements_by_class_name
– find_elements_by_css_selector
– find_elements_by_xpath
– find_elements_by_id
– find_elements_by_link_text
– find_elements_by_tag_name
メソッドの使い方と一例
browserに対して使います。引数に検索する内容を指定します。
例:browser.find_element_by_id('headline')
└ 指定の要素が含まれるエレメントを取得
└ 上記例の場合 id=’headline’
要素指定と合わせて使うメソッド
– click(要素をクリックする)
– send_keys(テキスト入力)
– getText(テキスト取得)
– get_attribute(属性取得)
– is_enabled(要素が有効か判断)
– is_selected(要素が選択されているか)
メソッドの使い方と一例
find_~系のメソッドで要素を取得した後に使います。
例1:driver.find_element_by_id('btn').click()
└ 指定した要素に対しメソッドを実行
└ 上記例の場合、id=’btn’の要素をclick
例2:driver.find_element_by_id('useName').send_keys("myname")
└ 上記例の場合、id=’useName’の要素にテキストで「myname」と入力