BeautifulSoupとSeleniumでスクレイピングをマスター!

BeautifulSoupとSeleniumの基本的な概要

スクレイピングとは、Webサイトから情報を取得することです。

BeautifulSoupは、HTMLやXMLファイルから情報を取得するためのPythonパッケージです。

Seleniumは、Webブラウザを自動化するためのツールです。JavaScriptやAjaxなどの動的なWebページもスクレイピングできます。

BeautifulSoupとSeleniumのインストール方法

BeautifulSoupのインストール方法は、ターミナルで以下のコマンドを実行します。

pip install beautifulsoup4

Seleniumのインストール方法は、ターミナルで以下のコマンドを実行します。

pip install selenium

BeautifulSoupを使ったスクレイピングの基本操作

BeautifulSoupを使ってWebページから情報を取得するには、以下の手順が必要です。

  1. requestsモジュールを使ってWebページのHTMLを取得する
  2. BeautifulSoupを使ってHTMLから必要な情報を取得する

以下は、aタグからテキストを取得するコードです。

import requests
from bs4 import BeautifulSoup
url = "スクレイピングするサイトのURL"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
for trend in soup.find_all("a", class_="tr-Item_title"):
    print(trend.text)

Seleniumを使ったスクレイピングの基本操作

Seleniumを使ってWebページから情報を取得するには、以下の手順が必要です。

  1. Webドライバーをインストールする
  2. Seleniumを使ってWebブラウザを自動化する
  3. Webページから必要な情報を取得する

以下は、例として某検索サイトから検索結果のタイトルを取得するコードです。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("スクレイピングするサイトのURL")
search_bar = driver.find_element_by_name("q")
search_bar.send_keys("Python")
search_bar.send_keys(Keys.RETURN)
for result in driver.find_elements_by_css_selector("h3"):
    print(result.text)
driver.quit()

BeautifulSoupとSeleniumを組み合わせたスクレイピングの実践例

以下は、例としてaタグからテキストとURLを取得するコードです。

from selenium import webdriver
from bs4 import BeautifulSoup
url = "スクレイピングするサイトのURL"
driver = webdriver.Chrome()
driver.get(url)
soup = BeautifulSoup(driver.page_source, "html.parser")
for trend in soup.find_all("a", class_="tr-Item_title"):
    print(trend.text)
    print(trend.get("href"))
driver.quit()

BeautifulSoupとSeleniumを使ったスクレイピングの注意点

スクレイピングはWebサイトの利用規約に違反する場合があります。また、過剰なアクセスによってWebサイトのサーバーに負荷をかけることもあります。スクレイピングを行う際には、以下の点に注意してください。

  • Webサイトの利用規約を確認する
  • 適切なアクセス頻度を設定する
  • 個人情報や著作権などの法的な問題についても考慮する

まとめ

BeautifulSoupとSeleniumを使えば、Webページから必要な情報を簡単に取得することができます。ただし、スクレイピングには注意点があります。適切に利用するようにしましょう。