Python入門トップページ


目次

  1. テストの自動化と Selenium
  2. Selenium のインストール
  3. ChromeDrive - WebDriver for Chrome のダウンロードと設置
  4. Web ページを開いてみよう
  5. リンクをクリックしてみる
  6. 要素の情報を取り出す
  7. すべての要素を取り出してみよう
  8. リンクを開いて戻ってみる
  9. リンクを巡回しながら情報を取得する(1)
  10. リンクを巡回しながら情報を取得する(2)
  11. リンクを巡回しながら情報を取得する(3)
  12. 要素の見つけ方

Selenium を使って Web からデータを自動収集しよう

Web ページを開いてみよう

まずは手始めに,Python から Web ブラウザを起動して Web ページ (https://kobegakuin-biz.jp/course/) を自動で表示するプログラムを作成し実行してみよう.Selenium のバージョンが3系で Windows 環境に手動で webdriver をインストールした場合は次のようなコードで動作します.なお,5行目は各自の環境に合わせて修正すること.

Web ページを開いてみる (win-selenium01.py)
from selenium import webdriver
import time       #時間を操作するPythonの標準モジュール

# 操作するブラウザを開く(フォルダは各自の環境に合わせる)
driver = webdriver.Chrome('C:\\Users\\bk182005\\Documents\\selenium\\chromedriver.exe')

# 操作するページを開く
driver.get('https://kobegakuin-biz.jp/course/')

# 3秒待つ
time.sleep(3)

# ブラウザを閉じる
driver.close()

Selenium のバージョンが4系であっても上のコードで動作するはずですが,「DeprecationWarning: executable_path has been deprecated, please pass in a Service object」なる警告が表示されるかもしれません.そのような場合は次のように変更してください.

Web ページを開いてみる (win-selenium01.py)
from selenium import webdriver
from selenium.webdriver.chrome import service as fs
import time       #時間を操作するPythonの標準モジュール

# 操作するブラウザを開く(フォルダは各自の環境に合わせる)
chrome_service = fs.Service(
        executable_path='C:\\Users\\bk182005\\Documents\\selenium\\chromedriver.exe'
    )
driver = webdriver.Chrome(service=chrome_service)

# 操作するページを開く
driver.get('https://kobegakuin-biz.jp/course/')

# 3秒待つ
time.sleep(3)

# ブラウザを閉じる
driver.close()

Mac に手動で webdriver をインストールした場合は次のように記述します.

[Mac 版] Web ページを開いてみる (mac-selenium01.py)
from selenium import webdriver
import time       #時間を操作するPythonの標準モジュール

# 操作するブラウザを開く(フォルダは各自の環境に合わせる)
driver = webdriver.Chrome('/Users/rinsaka/Documents/Selenium/chromedriver')

# 操作するページを開く
driver.get('https://kobegakuin-biz.jp/course/')

# 3秒待つ
time.sleep(3)

# ブラウザを閉じる
driver.close()

さらに,Selenium のバージョン3系に webdriver-manager をインストールして webdriver が自動インストールされるような設定を行っている場合は次のようになります.

[自動更新版] Web ページを開いてみる (manager-selenium01.py)
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
import time       #時間を操作するPythonの標準モジュール

# 操作するブラウザを開く
driver = webdriver.Chrome(ChromeDriverManager().install())

# 操作するページを開く
driver.get('https://kobegakuin-biz.jp/course/')

# 3秒待つ
time.sleep(3)

# ブラウザを閉じる
driver.close()

Selenium のバージョン4系で上のコードを実行すると「DeprecationWarning: executable_path has been deprecated, please pass in a Service object」なる警告が表示されるかもしれません.そのような場合は次のように変更してください.

[自動更新版] Web ページを開いてみる (manager-selenium01.py)
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import time       # 時間を操作するPythonの標準モジュール

# 操作するブラウザを開く
chrome_service=Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=chrome_service)

# 操作するページを開く
driver.get('https://kobegakuin-biz.jp/course/')

# 3秒待つ
time.sleep(3)

# ブラウザを閉じる
driver.close()

実行するには Jupyter Notebook やコマンドプロンプト(Mac の場合はターミナル等)を利用すれば良いでしょう.あるいは Spyder を利用しても良いでしょう.うまく動作すれば,Google Chrome が起動し,目的のページ (https://kobegakuin-biz.jp/course/) が表示されたはずです.

(base) C:\Users\bk182005\Documents\python>python manager-selenium01.py ⏎

DevTools listening on ws://127.0.0.1:60073/devtools/browser/735d5021-28ab-4e99-be15-f2a31c06136a

(base) C:\Users\bk182005\Documents\python>

以降のページでは Selenium 4系に webdriver-manager をインストールした環境を想定してコードを示します.その他の環境であれば,このページの内容を参考に適宜修正してください.

目次に戻る