Pythonでchromedriverを動かしてみてスクレイピングの準備をしよう!
スクレイピングでクロムドライバーを使って処理をする場合
最初にドライバーを起動させる必要があるので、その手順です。
簡単なpyファイルを作ってそこで起動させる処理を書いてみました。
※ pythonの環境が整っている前提でのお話になります。
Pythonでコードを書いてみる
ちなみに今回はchromedriverが動作して、Googleが開けたらいいのでmain.pyがあるだけの簡単なファイル構成になります。
chromedrivertest
└── main.py
始めての方はコピペでchromedriverがちゃんと動いてGoogleが開ける
というのを確認をしてから、コードを書いてみるのをオススメします。
まずは必要なモジュールをpipを使ってインストールしていきます。
pip install selenium==4.1.0
pip install webdriver_manager==4.0.0
これで必要なモジュールの準備ができましたので、
コードの方を書いていきましょう。
main.py
import sys
import time
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service as ChromeService
def start_driver(time_out=60):
"""
driver起動
"""
try:
# ブラウザオプション
options = webdriver.ChromeOptions()
# ドライバインストール&設定
new_driver = ChromeDriverManager().install()
service = ChromeService(executable_path=new_driver)
# ブラウザ起動
driver = webdriver.Chrome(service=service, options=options)
# タイムアウト設定
driver.set_page_load_timeout(time_out)
return driver
except Exception as e:
print("ドライバー起動失敗。再起動お願いします。")
print(e)
sys.exit()
def main():
# ブラウザを起動する
driver = start_driver()
# Googleへアクセス
driver.get("https://www.google.co.jp/")
time.sleep(5)
# noteへアクセス
driver.get("https://note.com/")
time.sleep(5)
if __name__ == "__main__":
main()
コードはこれだけです。
起動して URL にアクセスをするという簡単な流れになります。
あとはmain.pyを実行してあげれば
①chromedriverが起動
②google.co.jpにアクセス
③note.comにアクセス
のような動作になったら成功です。
ModuleNotFoundError: No module named 'selenium'エラー
pythonをやっているとよくみるエラーです。
pipを使ってエラーが出ているmoduleをインストールしたら良いです。
pip install selenium
chromedriverが起動できないエラー
chromedriverをインストールして一発目の実行時は
「“chromedriver”は、開発元を検証できないため開けません。」
と表示される場合がありますのでその時は一旦実行をキャンセルして、
ディレクトリからcheromedriverの場所に移動し
chromedriverを左クリックで「開く」をクリックすると
「“chromedriver”の開発元を検証できません。開いてもよろしいですか?」
と注意が出ますが、「開く」をクリックして、
ターミナルで「ChromeDriver was started successfully.」
と表示されましたら、ターミナルをバツボタンを押すと
「このウインドウで実行中のプロセスを終了しますか?」
と出ますが、「終了」で閉じましょう。
それからもう一度main.pyを実行です。
①②③のような動作になれば成功です。
最後に
Chrome Driverを直接ダウンロードして、ファイルパスで指定して動作させることも可能です。その場合は以下のURLからDriverのインストールが可能です。Chromeのバージョンに合わせて、ダウンロードすることで使えます。
https://chromedriver.chromium.org/downloads
ただ、Chromeがバージョンアップされると、Chrome Driverもアップデートする必要が出てきます。
バージョンが違うとエラーになることもあり、バージョンを追うのが面倒なので、今回はコードの中でinstallをして使うような形をとっています。
応用編として「noteの有料記事をPythonを使ってスクレイピングで抽出してエクセル出力してみた(コード付き)」記事もありますので良かったらこちらもご覧ください。
最後まで読んでいただき、ありがとうございました!