導入
スクレイピングは強力ですが、やってよいこと・悪いことの線引きを知らずに使うと、相手のサーバーに迷惑をかけたり、規約違反になったりします。技術より先に、ここを必ず押さえてください。
説明
守るべき基本は次のとおりです。
- 利用規約を確認する:サイトの利用規約でスクレイピングが禁止されていることがあります。禁止されている場合は行わない。
robots.txtを尊重する:多くのサイトはhttps://example.com/robots.txtに「クローラーが来てよい範囲」を書いています。これを確認し、Disallowの場所は取得しない。- アクセスを集中させない:短時間に大量アクセスするとサーバーに負荷(=攻撃と同じ)を与えます。リクエストの間に**待ち時間(例:1秒)**を入れる。
- 公式APIがあれば優先する:多くのサービスはデータ取得用の API を用意しています。API がある場合は、HTMLをスクレイピングするより API を使うほうが安全・確実です。
- 取得したデータの扱いに注意:著作権・個人情報のあるデータを勝手に再配布しない。集めてよいのは「使ってよい範囲」だけ。
flowchart TD
A{公式APIはある?} -->|ある| B[APIを使う<br/>これが最善]
A -->|ない| C{規約・robots.txtで<br/>許可されている?}
C -->|NG| D[スクレイピングしない]
C -->|OK| E[間隔をあけて<br/>控えめに取得]
スクレイピングは「相手のサーバーを借りている」という意識が大切です。自分が運営者だったら困らないかを基準に、控えめに・礼儀正しく行いましょう。
やってみよう
よく使うサイトの URL の末尾に /robots.txt を付けてブラウザで開いてみましょう(例:https://www.google.com/robots.txt)。User-agent や Disallow の行が、「どのページを自動取得してよいか」のルールになっています。