BeautifulSoup による Web スクレイピング
Python を使って Web サイトからデータを抽出する方法を学びます。
「BeautifulSoup による Web スクレイピング」はCoddyKit上の無料Learn AI with Pythonレッスンです。 これはレッスン5/5です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn AI with Python学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn AI with Pythonコースには全5レッスンが含まれています。
ウェブスクレイピング入門
ウェブスクレイピング入門
ウェブスクレイピングとは、ウェブサイトからデータを抽出する処理です。PythonのBeautifulSoupライブラリを使うと、HTMLやXMLドキュメントを簡単に解析して移動できます。
このレッスンでは、ウェブスクレイピングにBeautifulSoupを使う方法を学びます。

BeautifulSoupのインストール
BeautifulSoupのインストール
BeautifulSoupと必要なrequestsライブラリをインストールするには、次のコマンドを実行します。
pip install beautifulsoup4pip install requests
インストールが完了したら、Pythonスクリプトにインポートできます。
# Importing BeautifulSoup
from bs4 import BeautifulSoup
import requests
print("BeautifulSoup imported successfully")Webページの取得
Webページの取得
requestsライブラリを使ってWebページを取得できます。
# Fetching a web page
response = requests.get("https://example.com")
print(response.text) # Outputs the HTML contentBeautifulSoupでHTMLを解析する
BeautifulSoupでHTMLを解析する
BeautifulSoupには、HTMLドキュメントを解析して移動するためのメソッドが用意されています。
# Parsing HTML
html_content = "<html><body><h1>Hello, World!</h1></body></html>"
soup = BeautifulSoup(html_content, "html.parser")
print(soup.h1.text) # Outputs: Hello, World!要素を見つける
要素を見つける
BeautifulSoupには、要素を見つけるためのfind()やfind_all()などのメソッドがあります。
# Finding elements
soup = BeautifulSoup("<html><body><p class='content'>Hello!</p><p>World!</p></body></html>", "html.parser")
element = soup.find("p", class_="content")
print(element.text) # Outputs: Hello!リンクを抽出する
リンクを抽出する
ウェブページからすべてのリンク(<a>タグ)を抽出できます。
# Extracting links
html = "<html><body><a href='https://example.com'>Example</a></body></html>"
soup = BeautifulSoup(html, "html.parser")
links = soup.find_all("a")
for link in links:
print(link['href']) # Outputs: https://example.comテーブルを抽出する
テーブルを抽出する
BeautifulSoupを使うと、HTMLテーブルから簡単にデータを抽出できます。
# Extracting table data
html = "<table><tr><td>Row 1</td></tr><tr><td>Row 2</td></tr></table>"
soup = BeautifulSoup(html, "html.parser")
rows = soup.find_all("tr")
for row in rows:
print(row.text) # Outputs: Row 1, Row 2存在しない要素を処理する
存在しない要素を処理する
BeautifulSoupには、存在しない要素を安全に処理するためのメソッドが用意されています。
# Handling missing elements
soup = BeautifulSoup("<html><body></body></html>", "html.parser")
element = soup.find("p")
print(element) # Outputs: NoneBeautifulSoupでよくある間違い
BeautifulSoupでよくある間違い
避けるべき間違いを紹介します。
- 適切なHTMLパーサー(例:
html.parserやlxml)を使用しない。 - 適切なヘッダーを設定せずに、アクセスがブロックまたは制限されているWebサイトからコンテンツを取得する。
- スクレイピングを頻繁に行い、IPアドレスがブロックされる可能性がある。
学んだこと
学んだこと
このレッスンでは、次のことを学びました。
- BeautifulSoupとrequestsをインストールしてインポートする方法。
- HTMLコンテンツを取得、解析、ナビゲートする方法。
- リンクやテーブルなどの特定の要素を抽出する方法。
- 存在しない要素を安全に処理する方法。
よくできました。次のトピックに進みましょう。

よくある質問
「BeautifulSoup による Web スクレイピング」レッスンは無料ですか?
はい。「BeautifulSoup による Web スクレイピング」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn AI with Pythonコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn AI with Pythonコースには全5レッスンが含まれています。
「BeautifulSoup による Web スクレイピング」で何を学びますか?
Python を使って Web サイトからデータを抽出する方法を学びます。 ブラウザで直接実行するハンズオンコードでLearn AI with Pythonを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Learn AI with Pythonを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLearn AI with Pythonは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン5/5です。
「BeautifulSoup による Web スクレイピング」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLearn AI with Pythonレッスンでコードを書いて実行できますか?
はい。すべてのLearn AI with Pythonレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Pandas によるデータ分析
- Matplotlib によるデータ可視化
- 数値計算のための NumPy
- requests を使った API の操作
- BeautifulSoup による Web スクレイピング