はじめに:Webスクレイピングとは?
Webスクレイピングとは、Webサイトから情報を自動的に取得・抽出する技術のことです。
例えば、「商品価格の一覧を取得したい」「ブログ記事のタイトルだけをまとめたい」といった場面で活用されます。
PythonはWebスクレイピングに非常に適した言語で、初心者でも扱いやすいライブラリが豊富に用意されています。今回はその中でも、定番ライブラリ「BeautifulSoup」の基本的な使い方と、簡単な実践例を紹介します。
使用するライブラリの紹介
PythonでWebスクレイピングを行うには、以下のライブラリを使用します。
ライブラリ | 役割 |
---|---|
requests | WebページのHTMLを取得する |
BeautifulSoup | HTMLを解析し、特定の要素を抽出する |
pip install requests beautifulsoup4
基本ステップ:スクレイピングの流れ
Webスクレイピングの基本的な流れは次の通りです。
requests
でWebページのHTMLを取得BeautifulSoup
でHTMLをパース(解析)- 必要な情報を抽出(タグやクラスを指定)
- データの整形・保存
実践例:ニュース記事のタイトルを取得してみよう
今回は例として、「Yahoo!ニュース(ITカテゴリ)」の見出しタイトルを取得してみましょう。
サンプルコード
import requests
from bs4 import BeautifulSoup
# スクレイピング対象のURL
url = "https://news.yahoo.co.jp/categories/it"
# HTMLを取得
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")
# タイトルを取得(classは記事構造により変わる可能性あり)
titles = soup.select("a.sc-7452b7c0-2") # 例:classが"sc-7452b7c0-2"のリンク
# 表示
for title in titles:
print(title.get_text())
🔍 補足:Webサイトによってはクラス名が動的に変わる場合があります。常に最新のHTML構造を「開発者ツール(F12)」などで確認しましょう。
よく使うBeautifulSoupのメソッド一覧
メソッド | 説明 |
---|---|
soup.find() | 最初の1件のみ取得 |
soup.find_all() | 条件に一致するすべての要素を取得 |
soup.select() | CSSセレクタで複数要素を取得(柔軟性が高い) |
.get_text() | 要素のテキストのみ取得 |
.attrs['href'] | 属性(例:リンク先URL)を取得 |
スクレイピングの注意点とマナー
Webスクレイピングにはルールやマナーがあります。
- robots.txtを確認:スクレイピング禁止エリアを定義している場合があります。
- 過度なアクセス禁止:短時間に大量アクセスは迷惑行為になります。
- 商用利用は要注意:データの無断利用は著作権などの問題を引き起こす場合があります。
応用編:取得データをCSV保存する
取得したデータをCSVファイルに保存することで、業務やデータ分析に活かせます。
import csv
with open("titles.csv", mode="w", encoding="utf-8", newline="") as file:
writer = csv.writer(file)
writer.writerow(["タイトル"])
for title in titles:
writer.writerow([title.get_text()])
まとめ
Webスクレイピングは、業務の自動化・データ収集・分析の第一歩として非常に有効な技術です。
特にPythonとBeautifulSoupは、初心者にもやさしく扱いやすいため、ぜひ挑戦してみてください。
今後は以下のような応用も可能です
- Python+Seleniumで動的なサイトに対応
- pandasでスクレイピング結果を整形・分析
- スクレイピング×機械学習で需要予測や自動レコメンド
おすすめ関連記事
- 【実践例】Pythonで業務自動化ツールを作る方法|スキルを活かして年収アップも目指せる?
- 【Python×ChatGPT API】社内文書の自動要約ツールを作ってみた(コード公開)
- 【現場で使える】JavaでREST APIを作ってみよう|実務力がそのままキャリアアップにつながる時代
あなたの技術をキャリアに活かしませんか?
今のスキル、活かしきれていますか?
「もっと技術で評価されたい」「年収を上げたい」と思ったら、ハイクラス転職エージェントの活用がおすすめです。
✅【20代〜30代向け】技術に強いキャリア支援
✅ 年収600万円〜1,000万円の非公開求人多数
✅ 無料でキャリア相談OK!