さっしーブログ

埼玉県在住のシステムエンジニアです。基本的には技術的な内容を中心に発信していきます。

Python入門 Seleniumを使ってブラウザを操作しよう

f:id:y_saiki:20171024233602j:plain

目次

1.実行環境

  • MacOS Sierra 10.12.16
  • Python2.7.13
  • Chrome

2.Seleniumとは

Seleniumはプログラムでブラウザを操作するためのソフトウェアです。
本来はユーザーテストなどの自動化をするためのツールだそうですが、これを応用することにより作業の自動化やスクレイピングなども行えるので今回はSeleniumを使った内容をまとめていきます。

3.Seleniumを利用する準備をしよう

今回はSeleniumのライブラリとChromeブラウザを操作するためのドライバーを環境に取り込みます。
筆者は環境でSeleniumはすでにインストール済みであったため、もしご自身の環境にインストールされていなかった場合は3-1.を実施してください。

3-1.Seleniumをインストールしよう

$ pip install selenium

3-2.Chromeドライバーをダウンロードしよう

以下、公式サイトからダウンロードを行います。

sites.google.com

筆者は以下のドライバーをダウンロードしました。

chromedriver_mac64.zip

これを解凍して、中にあるドライバーを自身のブログラムから参照するようにします。

4.Seleniumを使用してブラウザから検索してみよう

Seleniumを通してブラウザの検索窓に「Selenium Test」と入力して検索結果が表示されるところまでのプログラムを作成してみましょう。
また、ChromeDriverはmain.pyと同階層に配置しています。 ※1 : ご自身の環境のパスに置き換えてください。

4-1.サンプルコード

main.py

    #_*_ coding: utf-8 _*_
    
    #import json_util

    from selenium import webdriver

    import time

    
    def main():

        driver = webdriver.Chrome("[※1]")

        driver.get("https://www.google.co.jp/")

        time.sleep(3)

        driver.find_element_by_id("lst-ib").send_keys("Selenium Test")

        driver.find_element_by_name("btnK").click()

        time.sleep(10)

        driver.quit()

    if __name__ == "__main__":

        main()

4-2.実行結果

実行結果をブログに載せるのは難しいため、ご自身で上記サンプルコードを動かしてみてください。
こちらでは割愛します。

5.Selenium Tips

5-1.要素の指定の仕方

要素を指定するやり方には様々なパターンがあります。

id属性で指定する場合

driver = webdriver.Chrome("[PATH]")
driver.find_element_by_id('[ID]')

class属性で指定する場合

driver = webdriver.Chrome("[PATH]")
driver.find_element_by_class_name('[CLASS]')

name属性で指定する場合

driver = webdriver.Chrome("[PATH]")
driver.find_element_by_name('[NAME]')

xpathで指定する場合

driver = webdriver.Chrome("[PATH]")
driver.find_elements_by_xpath("[XPATH]")

5-2.選択した要素に対するアクションサンプル

クリックする場合

driver = webdriver.Chrome("[PATH]")
driver.find_element_by_id('[ID]').click()

文字を入力する場合

driver = webdriver.Chrome("[PATH]")
driver.find_element_by_id('[ID]').send_keys("Selenium Test")

実行結果をブログに載せるのは難しいため、ご自身で上記サンプルコードを動かしてみてください。
こちらでは割愛します。

以上