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サービスのエンジニアに転職した話

コメント