PythonでWebスクレイピングを始めよう!BeautifulSoupの使い方を徹底解説

PythonでWebスクレイピングを始めよう!BeautifulSoupの使い方を徹底解説 python

PythonでWebスクレイピングを始めたいけれど、どのようにコードを書けばいいのか迷っていませんか?本記事では、初心者にもやさしくBeautifulSoupの基本から応用まで解説します。

Webスクレイピングとは?

Webスクレイピングとは、インターネット上のWebページから情報を自動的に取得する技術のことです。例えば、ニュースサイトの見出しをまとめたり、商品価格を定期的に取得するなどに活用できます。Pythonはスクレイピングに適したライブラリが豊富で、その中でも「BeautifulSoup」はシンプルかつ使いやすいため、多くのエンジニアに支持されています。

BeautifulSoupを使う準備

まずはPython環境にBeautifulSoupを導入する必要があります。さらに、Webページの取得には「requests」ライブラリを組み合わせるのが一般的です。以下のコマンドで必要なライブラリをインストールしましょう。

pip install requests
pip install beautifulsoup4

インストールが完了すれば、スクレイピングの準備は整います。次は実際に使い方を学んでいきましょう。

基本的な使い方

Webページを取得して解析する

まずは簡単な例から始めます。以下のコードでは、Webページを取得し、タイトルを抽出しています。

import requests
from bs4 import BeautifulSoup

url = "https://example.com"
res = requests.get(url)
soup = BeautifulSoup(res.text, "html.parser")

print(soup.title.string)

このコードを実行すると、指定したWebページのタイトルが出力されます。基本の流れは「ページ取得 → BeautifulSoupで解析 → 必要なデータを抽出」です。

特定のタグを取得する

BeautifulSoupではタグ名やクラス名で要素を取得できます。例えば、記事タイトルが<h2>タグに含まれている場合、次のように記述できます。

titles = soup.find_all("h2")
for t in titles:
    print(t.get_text())

このようにすると、対象ページ内のすべてのh2要素が取得できます。

応用的な使い方

属性でデータを絞り込む

タグにclassやidが指定されている場合、それを条件に抽出可能です。例えば、クラス名「price」の要素を取得する場合は次のように書きます。

prices = soup.find_all("span", class_="price")
for p in prices:
    print(p.text)

この方法を使えば、必要なデータだけを効率的に集められます。

リンクや画像のURLを取得する

リンクや画像を取得することもよくあります。以下の例では、すべてのリンクを抽出しています。

links = soup.find_all("a")
for link in links:
    print(link.get("href"))

同様に、画像URLを取得したい場合は<img>タグを対象にすれば簡単です。

よくあるエラーと注意点

スクレイピングを実行すると、次のようなエラーが起こることがあります。

  • HTTPエラー:アクセス先が存在しない場合や、アクセスが拒否された場合に発生します。
  • 構造の変化:サイトのHTML構造が変更されると、データが取得できなくなることがあります。
  • 文字化け:エンコーディングが適切でない場合に起きやすいです。

また、サイトによってはスクレイピングを禁止しているケースもあるため、利用規約やrobots.txtを必ず確認することが大切です。

さらに便利な応用テクニック

BeautifulSoupだけでなく、「pandas」と組み合わせることで取得したデータを整理して表形式で保存できます。また、定期的にデータを取得したい場合は「schedule」や「cron」といったタスクスケジューラーと組み合わせると便利です。さらに、取得した情報をCSVやExcelに出力して、データ分析や業務効率化に活用することも可能です。

Webスクレイピングを学ぶことで、自動化やデータ活用の幅が大きく広がります。

Python初心者におすすめのサービス

「もっと実践的なコード例が欲しい」「自分の用途に合わせて教えてほしい」という方には、

テックアカデミーがおすすめです。

AI関連コースやシステム開発コース、アプリ開発コースなど豊富な学習が可能です。

さらに今なら無料相談でアマギフプレゼントもあるので、気軽にお申込みしてみてください。

テックアカデミー無料相談

また、プログラミング学習のプラットフォームとして、ココナラでは、現役エンジニアや経験豊富なPython講師が、あなたのレベルや目的に合わせてマンツーマンで指導してくれます。

書籍や動画ではカバーしきれない、あなた専用のカリキュラムで学べるのが最大の魅力。短時間で効率的にスキルを伸ばしたいなら、まずは出品者のサービスをチェックしてみましょう。

また、教える側としてスキルを活かして副業・独立を目指すことも可能です。
プログラミング経験やPythonの知識があれば、自分の得意分野をサービスとして出品し、全国の学習者から直接依頼を受けられます。オンラインで完結するため、場所や時間に縛られず、自分のペースで働けるのも大きなメリットです。

こちらのリンクから詳細をチェックしてみてください。

▶ ココナラを活用する

まとめ

PythonでWebスクレイピングを行う際は、BeautifulSoupが最も手軽で強力なライブラリです。基本の使い方を覚えるだけでも、日常の情報収集が格段に楽になります。ルールを守りつつ、安全に活用してみてください。

以下のリンクから、

SESの組込みシステムから色々な不満を持ち、自社WEBサービスへ転職した実体験の記事がありますので、是非読んでみてください。とても喜びます。

SESの組込みシステムから自社WEBサービスのエンジニアに転職した話

参考リンク

コメント

タイトルとURLをコピーしました