Pythonで始めるWebスクレイピング:Chromedriverの起動方法
Pythonを使ってWebスクレイピングを始めたい方のために、Chromedriverを使用したwebdriverの起動方法を解説します。
本記事では、必要な依存関係のインストールから、実際のコードの実行、実行ファイルの作成方法までをカバーします。
はじめに
スクレイピングとは?
スクレイピングとは、ウェブサイトのデータを「自動的に抽出」する技術です。
例えば、特定のニュースサイトの記事タイトルを一覧で取得したり、ECサイトの商品情報を集めたりすることができます。しかし、スクレイピングを行う際には、いくつかの注意点があります。
スクレイピングを行う際の注意事項
Webスクレイピングを行う際には、以下の注意事項を守ってください。これを守らないと、対象のWebサイトに対する攻撃とみなされる可能性があります。
- 対象のWebサイトの利用規約を確認:
- スクレイピングが禁止されていないか確認します。利用規約に違反しないように注意しましょう。違反すると法的な問題が発生する可能性があります。
- Webサイトに負荷をかけすぎない:
time.sleep
を使って、適切な間隔を空けるようにしましょう。サーバーに過度な負荷をかけないことが重要です。過度なリクエストはDDoS攻撃と見なされることがあります。
スクレイピングのデモ動画
実行ファイルを実行してChromedriverが自動で動く様子をデモ動画でご覧いただけます。
この動画を見ることで、実際の動作をイメージしやすくなると思います。
実行ファイルの配布
スクレイピングをすぐに試してみたい方のために、動作する実行ファイルを配布しています。
以下からzipファイルをダウンロード、解凍してから実行ファイルをダブルクリックすることで実行することができます。
ダウンロードした実行ファイルを実行する際、セキュリティソフトによって警告が表示される可能性があります。これは、インターネットからダウンロードされたファイルがセキュリティリスクを含む可能性があると判断されるためです。ご心配な方は、提供しているPythonコードからご自身で実行ファイルを作成することをお勧めします。実行ファイルの実行後、セキュリティソフトを起動し、問題がないことを確認してください。
※ macでは実行ファイルを右クリックして、「開く」をクリックすると、開いてもよろしいですか?と表示されるので、「開く」をクリックすることで、実行できます。
1. 本記事の前提条件
本記事では、Python環境がすでに準備されており、pipコマンドが使用できることを前提としています。
まだ準備ができていない方は、Python公式サイト からPythonをインストールしてください。
2. 必要な依存関係のインストール
Webスクレイピングを行うために、以下の依存関係をインストールする必要があります。
具体的には、Selenium、webdriver_manager、およびpyinstallerを使用します。
以下のコマンドを使用してインストールしてください。
これらのバージョンは動作確認済みのため、指定しています。指定されたバージョンを使用することで、動作の安定性が保証されます。
pip install selenium==4.21.0
pip install webdriver_manager==4.0.1
pip install pyinstaller==6.7.0
3. Webdriverを使ったWebスクレイピングコード
次に、Seleniumを使ってChromedriverを起動し、ウェブサイトにアクセスするコードを紹介します。
以下のコードをmain.py
として保存してください。
import time
from selenium import webdriver
"""
# webdriverを動作させるためのコード
## 必要な依存関係のインストールコマンド
pip install selenium==4.21.0
pip install webdriver_manager==4.0.1
pip install pyinstaller==6.7.0
## 実行コマンド
python main.py
## 実行ファイルの作成コマンド(dist配下に実行ファイルができる: ./dist/main)
pyinstaller --onefile main.py
## 実行ファイル実行方法
Finderからdist配下にある「main」をダブルクリックすることで実行可能(Windowsの場合は「main.exe」)
"""
def main():
# ブラウザオプション
options = webdriver.ChromeOptions()
# Chromeブラウザ起動
driver = webdriver.Chrome(options=options)
try:
# タイムアウト設定
driver.set_page_load_timeout(180)
# Googleのウェブサイトにアクセス
driver.get("https://www.google.co.jp/")
# 一時停止(5秒)
time.sleep(5)
# ウェブサイトにアクセス
driver.get("https://oknw-pool.com/cardano-stake-pool/#index_id4")
time.sleep(3)
driver.get("https://oknw-pool.com/cardano-stake-pool/#index_id5")
time.sleep(3)
driver.get("https://oknw-pool.com/cardano-stake-pool/#index_id6")
time.sleep(3)
driver.get("https://oknw-pool.com/cardano-stake-pool/#index_id16")
time.sleep(3)
except Exception as e:
print(f"エラーが発生しました: {e}")
finally:
# ブラウザを閉じる
driver.quit()
if __name__ == "__main__":
print("webdriver: 開始")
main()
print("webdriver: 終了")
input("Enterキーを押して終了します...")
4. コードの実行方法
Pythonコードを実行するには、以下のコマンドを使用します。
python main.py
5. 実行ファイルの作成コマンド
PyInstallerを使用して、Pythonスクリプトを単一の実行ファイルに変換します。
以下のコマンドを実行してください。
pyinstaller --onefile main.py
このコマンドを実行すると、dist
フォルダ内にmain
という実行ファイルが作成されます。
※ Windowsではmain.exe
/dist/
└── main
6. 実行ファイルの実行方法
作成した実行ファイルを実行するには、dist
フォルダ内の実行ファイルのmain
ファイルをダブルクリックするか、コマンドラインから以下のように実行します。(Windowsではmain.exe
を実行します)
./dist/main
7. 実行ファイルを任意のフォルダに移動する場合
作成した実行ファイルのmain
ファイルを移動したらOKです。(Windowsではmain.exe
を移動します)
設定ファイル(config.ini)などがある場合は、一緒に移動する必要があります。
(例)
/path/to/your/folder/
├── main
└── config.ini
noteで応用編のコードを販売しています
スクレイピングの基本を学んだ後は、さらに応用編に進みましょう。
noteでは、より高度な技術やテクニックを使ったスクレイピングの応用編コードを販売しています。
実際に動作している様子のデモ動画も公開中です。ぜひご覧ください!
【note用】実際に自動抽出している様子のデモ動画
実際にスクリプトが動作している様子を動画です。
noteでコンテンツを検索をして、スクロールをして、データを抽出しています。
noteの有料コンテンツを自動抽出したデータはこのようにExcelに出力されます。
note用のコンテンツのURL↓
【Brain用】実際に自動抽出している様子のデモ動画
実際にスクリプトが動作している様子を動画です。
Brainでコンテンツを検索をして、スクロールをして、データを抽出しています。
Brainコンテンツの自動抽出したデータはこのようにExcelに出力されます。
Brain用コンテンツのURL↓
まとめ
この記事では、Pythonを使ったWebスクレイピングのためにChromedriverを起動する方法について解説しました。
Seleniumを使うことで、簡単にウェブサイトにアクセスすることができます。
また、PyInstallerを使って実行ファイルを作成する方法も紹介しました。
これにより、Pythonコードを簡単に配布・実行することができます。
ぜひ色々試してみてください。
コメント