logo
languageJPdown
menu

【Python】SeleniumでWebスクレイピングする方法

約6分で読めます

Webスクレイピングは、Webサイト上の情報を自動的に取得し、効率よくデータの収集を行う技術です。特にPythonとSeleniumの組み合わせは、ブラウザ操作を通じてJavaScriptで生成されたデータまで取得できることから、多くの現場で活用されています。
本記事では、Seleniumの基本機能や活用方法について解説します。また、実際にコピペだけでWebスクレイピングができるサンプルコードも紹介していますので、ぜひ最後までご覧ください。

Seleniumとは?

Seleniumとは、Webブラウザを自動操作するためのオープンソースのフレームワークです。元々はWebアプリケーションの動作確認やUIテストを目的に開発されましたが、現在ではWebスクレイピングにも広く活用されています。

はじめに、Seleniumの基本機能やユースケースについて解説します。

Seleniumの基本機能

Seleniumは、実際のブラウザをプログラムが操作することで、動的ページ(アクセスするユーザーや時間により、表示される内容が変化するページ)のデータを自動的に取得できます。

プログラム上で、ページ遷移やクリック、入力、スクロール、スクリーンショットなどを指示し、まるで人間が操作しているかのようにWebページを動かすことが可能です。

これにより、JavaScriptで生成される情報やログイン後に表示される会員限定コンテンツも、正確にスクレイピングできます。

よく使われるSeleniumの基本操作と構文例は以下の通りです。

操作内容Selenium構文例
ページを開くdriver.get(“https://example.com”)
クリックdriver.find_element(By.ID, “btn”).click()
テキスト入力driver.find_element(By.NAME, “q”).send_keys(“検索ワード”)
要素情報の取得element.get_attribute(“href”)
ページ下部へスクロールdriver.execute_script(“window.scrollTo(0, document.body.scrollHeight);”)
スクリーンショットdriver.save_screenshot(“capture.png”)

Seleniumのユースケース・活用事例

次に、Seleniumのユースケースや具体的な活用事例をご紹介します。

  • ログイン処理を含むスクレイピング
    ID・パスワードの入力、自動ログインなど、人間が行う一連の操作を自動化できます。会員専用ページのデータ取得に有効です。
  • 無限スクロールページの対応
    SNSやECサイトに多い「下までスクロールすると次のデータが読み込まれる」形式のサイトのデータも収集可能です。
  • Webアプリケーションの自動テスト
    テストケースを作成し、Seleniumを使用してテストスクリプトを実行することで、ブラウザ上でのテストを自動化することができます。

Seleniumに関するよくある質問

ここでは、Seleniumに関してよく寄せられる質問とそのポイントをまとめています。

  • Seleniumでスクレイピングをしたらバレる?
    前提として、スクレイピング自体、Webサイトの利用規約に違反しない限りは、法的に問題ありません。 ただし、Webサイトの所有者が「特定のパターンを持つリクエスト」などの監視を行っている場合、スクレイピングとして検出される可能性があります。
    関連記事:スクレイピングは違法?Webスクレイピングに関するよくある誤解!
  • Seleniumの弱点は?
    Seleniumは、Webブラウザ専用の自動化フレームワークです。従って、ブラウザの操作以外は自動化することができません。ブラウザ外の処理にはPythonの他ライブラリ(Requests、BeautifulSoup4等)と併用しましょう。
  • Seleniumは重いと聞きましたが、本当ですか?
    はい。実際のブラウザを起動するため、軽量なライブラリ(例:RequestsやBeautifulSoup)と比べて動作は重くなります。

【サンプルコード付き】Seleniumの実施方法

ここからは、実際にPythonとSeleniumを使ったWebスクレイピングを行う手順を紹介します。ピペでそのまま動作確認できるので、ぜひチャレンジしてみてください。

Seleniumのインストール

まずはSeleniumをPython環境にインストールしましょう。Pythonがインストール済みであれば、以下のコマンドをターミナル(またはコマンドプロンプト)で実行するだけでOKです。

まずはSeleniumをPython環境にインストールしましょう。Pythonがインストール済みであれば、以下のコマンドをターミナル(またはコマンドプロンプト)で実行するだけでOKです。

pip install seleniumpip install webdriver-manager

インストール完了後、以下のコマンドを使って正しくインストールされているか確認できます。

python -c “from selenium import webdriver; print(‘Selenium OK’)”

print文の通り、「’Selenium OK」と出力されればインストールが完了しています。

ChromeDriverのインストール

SeleniumでChromeブラウザを操作するには、「ChromeDriver」と呼ばれる専用のドライバーが必要です。手動でインストールする場合は、まず自分のChromeのバージョンを確認し、以下の公式サイトから対応するChromeDriverをダウンロードします。

Chrome Driver: https://chromedriver.chromium.org/downloads

ダウンロードしたzipファイルを解凍し、chromedriverという名前の実行ファイルが確認できれば操作は完了です。

Chromeブラウザを自動起動してGoogleを開く

それでは、実際にブラウザを自動起動させてWebページを開いてみましょう。

以下は、Googleのトップページを表示させる基本的なスクリプトです。
テキストエディタを起動し、ファイルを“.py”という拡張子で保存します。

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
import time

# Chromeドライバの自動ダウンロード&起動
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install())) 

# Googleを開くdriver.get(“https://www.google.com”) 

# 数秒待って終了(目視確認用)
time.sleep(5) 

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

コマンドプロンプトを起動し、保存したファイルのあるディレクトリへ移動後、”python ◯◯.py”と入力し、実行すれば操作完了です。

以下のようなウィンドウが出れば成功となります。

Google検索結果を取得する

次に、任意の文字列でGoogle検索を行ってみましょう。

以下のコードをコピペし、実行してください。

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager 

# Chromeのオプション設定
options = Options()
options.add_argument(“–disable-blink-features=AutomationControlled”)  # Bot対策
options.add_argument(“user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36”) 

# ドライバー起動
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options) 

# Google(日本版)を開く
driver.get(“https://www.google.co.jp/”) 

# 検索フォームを探す
search_box = driver.find_element(By.NAME, “q”)
search_box.send_keys(“Selenium Python”)
search_box.send_keys(Keys.RETURN) 

# ユーザーが手動で見るまで終了しない
input(“検索完了。確認したらEnterを押して終了:”) 

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

以下のように、自動で検索画面まで遷移すれば成功です。

Octoparseでスクレイピングする方法(Selenium不要)

Seleniumを使わずに、もっと簡単にWebスクレイピングを始めたい方には、ノーコードツールの「Octoparse」がおすすめです。プログラミングの知識がない場合でも、GUI操作でデータを簡単に、自動で抽出できます。最後に、Octoparseの基本的な使い方と操作手順を紹介します。

  • URLの入力
    Octoparseを起動し、検索ウィンドウからスクレイピングしたいWebページのURLを入力します。その後、「スタート」をクリックします。
  • データ検出
    「ウェブページのデータを自動検出」を選択します。すると、ウェブページが自動的に検出されます。
    もし、「次のページ」や「スクロールダウン」後の情報も取得したい場合は、操作提案上の指示に従ってスクロールダウンとページネーションを設定することができます。
  • データ収集の実行
    データプレビューにて収集するデータを確認し、「実行」を押すとデータ収集が開始されます。
    このように、Octoparseを使うとプログラミング不要でデータの収集が可能となります。

まとめ

本記事では、PythonとSeleniumを使ったWebスクレイピングの方法について解説しました。Webページの情報を人力で収集しようとすると非常に大変ですが、Seleniumを活用することで簡単にデータが収集可能となります。
しかし、Seleniumを扱うにはプログラミングスキルが必要となります。スクレイピングを手軽に始めたい方にはOctoparseがおすすめです。用途や自身のスキルに応じて最適な方法を選び、スクレイピングを効果的に活用しましょう。

ウェブサイトのデータを、Excel、CSV、Google Sheets、お好みのデータベースに直接変換。

自動検出機能搭載で、プログラミング不要の簡単データ抽出。

人気サイト向けテンプレート完備。クリック数回でデータ取得可能。

IPプロキシと高度なAPIで、ブロック対策も万全。

クラウドサービスで、いつでも好きな時にスクレイピングをスケジュール。

クリックだけでウェブ データを取得
無料ダウンロード

人気記事

トピックを検索する

今すぐOctoparseを始めて、業務効率化を実現しましょう。

ダウンロード

関連記事