2026年3月4日水曜日

Pythonを使ってWebサイトのデータを取得する「スクレイピング」

 Pythonを使ってWebサイトのデータを取得することを**「スクレイピング」**と呼びます。Termux環境でこれを実現するための最短ルートを解説しますね。

まずは、Webサイトから情報を取ってくるための「道具(ライブラリ)」をインストールしましょう。


1. 必要なライブラリのインストール

Termuxのターミナルで以下のコマンドを実行してください。

Bash
pip install requests beautifulsoup4
  • requests: Webサイトに「データをください」とリクエストを送るためのライブラリ。

  • beautifulsoup4: 届いたデータ(HTML)の中から、必要な場所(ニュースのタイトルなど)を抜き出すためのライブラリ。


2. 実際にデータを取得するコード(例)

今回は練習として、もっともシンプルな「Webサイトのタイトル(<title>タグの内容)」を取得するプログラムを作成します。

ステップA:ファイル作成

Bash
nano scrape.py

ステップB:以下のコードを貼り付け(または入力)

Python
import requests
from bs4 import BeautifulSoup

# 1. 取得したいURLを指定
url = "https://www.google.com"

# 2. サイトにアクセスしてデータを取得
response = requests.get(url)

# 3. 解析しやすい形(BeautifulSoup)に変換
soup = BeautifulSoup(response.text, "html.parser")

# 4. タイトルタグの内容を表示
print(f"サイトのタイトル: {soup.title.string}")

ステップC:実行

Ctrl + OEnterCtrl + X で保存して閉じたら、実行します。

Bash
python scrape.py

3. スクレイピングの仕組み

スクレイピングは、ブラウザが裏側で行っている作業をPythonに代行させるイメージです。

  1. Request: Pythonがサーバーに「このページを見せて」と頼む。

  2. Response: サーバーがページのソースコード(HTML)を返す。

  3. Parse: 膨大なHTMLの中から、特定のタグ(<a><h1>など)を抽出する。


⚠️ スクレイピングの「鉄則」

Webサイトのデータを取る際には、以下のマナーとルールを必ず守ってください。

  • 相手のサーバーに負荷をかけない: 大量のアクセスを短時間に行うと、攻撃とみなされアクセス禁止(BAN)されることがあります。ループで回す場合は time.sleep(1) などで間隔を空けましょう。

  • 利用規約を確認する: サイトによってはスクレイピングを禁止している場合があります。

  • 著作権に注意: 取得したデータを勝手に公開・販売すると法律に触れる可能性があります(個人で楽しむ分には問題ありません)。


💡 次のステップ

次は「ニュースサイトの見出しを一覧にする」や「天気の情報を取得する」など、もう少し実用的なことに挑戦してみませんか?

特定のサイト(例えばYahooニュースなど)から特定の情報を抜き出したい場合は、そのサイトに合わせた書き方をアドバイスできますよ!


(※画面上のコピーアイコンで、スクレイピングの雛形コードを保存しておけます)

0 件のコメント:

コメントを投稿