
BeautifulSoupとSeleniumの基本的な概要
スクレイピングとは、Webサイトから情報を取得することです。
BeautifulSoupは、HTMLやXMLファイルから情報を取得するためのPythonパッケージです。
Seleniumは、Webブラウザを自動化するためのツールです。JavaScriptやAjaxなどの動的なWebページもスクレイピングできます。
BeautifulSoupとSeleniumのインストール方法
BeautifulSoupのインストール方法は、ターミナルで以下のコマンドを実行します。
1 | pip install beautifulsoup4 |
Seleniumのインストール方法は、ターミナルで以下のコマンドを実行します。
1 | pip install selenium |
BeautifulSoupを使ったスクレイピングの基本操作
BeautifulSoupを使ってWebページから情報を取得するには、以下の手順が必要です。
- requestsモジュールを使ってWebページのHTMLを取得する
- BeautifulSoupを使ってHTMLから必要な情報を取得する
以下は、aタグからテキストを取得するコードです。
1 2 3 4 5 6 7 | 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ページから情報を取得するには、以下の手順が必要です。
- Webドライバーをインストールする
- Seleniumを使ってWebブラウザを自動化する
- Webページから必要な情報を取得する
以下は、例として某検索サイトから検索結果のタイトルを取得するコードです。
1 2 3 4 5 6 7 8 9 10 | 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を取得するコードです。
1 2 3 4 5 6 7 8 9 10 | 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ページから必要な情報を簡単に取得することができます。ただし、スクレイピングには注意点があります。適切に利用するようにしましょう。