Pythonを使ってWebサイトのデータを取得することを**「スクレイピング」**と呼びます。Termux環境でこれを実現するための最短ルートを解説しますね。
まずは、Webサイトから情報を取ってくるための「道具(ライブラリ)」をインストールしましょう。
1. 必要なライブラリのインストール
Termuxのターミナルで以下のコマンドを実行してください。
pip install requests beautifulsoup4
requests: Webサイトに「データをください」とリクエストを送るためのライブラリ。
beautifulsoup4: 届いたデータ(HTML)の中から、必要な場所(ニュースのタイトルなど)を抜き出すためのライブラリ。
2. 実際にデータを取得するコード(例)
今回は練習として、もっともシンプルな「Webサイトのタイトル(<title>タグの内容)」を取得するプログラムを作成します。
ステップA:ファイル作成
nano scrape.py
ステップB:以下のコードを貼り付け(または入力)
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 + O → Enter → Ctrl + X で保存して閉じたら、実行します。
python scrape.py
3. スクレイピングの仕組み
スクレイピングは、ブラウザが裏側で行っている作業をPythonに代行させるイメージです。
Request: Pythonがサーバーに「このページを見せて」と頼む。
Response: サーバーがページのソースコード(HTML)を返す。
Parse: 膨大なHTMLの中から、特定のタグ(
<a>や<h1>など)を抽出する。
⚠️ スクレイピングの「鉄則」
Webサイトのデータを取る際には、以下のマナーとルールを必ず守ってください。
相手のサーバーに負荷をかけない: 大量のアクセスを短時間に行うと、攻撃とみなされアクセス禁止(BAN)されることがあります。ループで回す場合は
time.sleep(1)などで間隔を空けましょう。利用規約を確認する: サイトによってはスクレイピングを禁止している場合があります。
著作権に注意: 取得したデータを勝手に公開・販売すると法律に触れる可能性があります(個人で楽しむ分には問題ありません)。
💡 次のステップ
次は「ニュースサイトの見出しを一覧にする」や「天気の情報を取得する」など、もう少し実用的なことに挑戦してみませんか?
特定のサイト(例えばYahooニュースなど)から特定の情報を抜き出したい場合は、そのサイトに合わせた書き方をアドバイスできますよ!
(※画面上のコピーアイコンで、スクレイピングの雛形コードを保存しておけます)
0 件のコメント:
コメントを投稿