導入
第2章で html = """...""" と書いていた部分を、実際のスクレイピングでは requests ライブラリでネットから取得します。ここが「①取得」の担当です。
説明
import requests
from bs4 import BeautifulSoup
url = "https://example.com/"
res = requests.get(url) # URLにアクセスしてレスポンスを得る
res.raise_for_status() # エラー(404など)ならここで例外にする
res.encoding = res.apparent_encoding # 文字化け対策(日本語サイトで有効)
soup = BeautifulSoup(res.text, "html.parser")
print(soup.find("title").text)
requests.get(url)… URLにアクセスし、レスポンスを受け取ります。res.status_code… 結果のコード。200が成功、404が「ページが無い」、403が「拒否」など。res.raise_for_status()… 失敗コードなら例外を出して、気づかず先へ進むのを防ぎます。res.text… 返ってきた HTML の本文。これを そのまま BeautifulSoup に渡せば、あとは第2〜4章と同じ解析です。
つまり実務では、**「requests.get で取ってきた res.text を、これまで練習した BeautifulSoup に流し込む」**だけ。解析の技術がそのまま活きます。
やってみよう
第2〜4章で書いた解析コードの html = """...""" を、res = requests.get(url); html = res.text に置き換えれば、そのまま実サイト向けになります。取得(requests)と解析(BeautifulSoup)が分かれていることを意識しましょう。