14章スクレイピングの落とし穴を避ける

サイトをスクレイピングして出力を確認した際、ブラウザではきちんと見えるのに、データではそうでなかったときほど、苛立つことはそうありません。あるいは、まったく大丈夫なはずのフォームをサブミットしてWebサーバに拒絶される。あるいはまた、自分のIPアドレスが、理由はわからないがブロックされてしまうときなどです。

(あるサイトでうまく動いていたスクリプトが見たところは同じような別のサイトで全然動かないなど)まったく予期していなかったからだけでなく、意図的に何の手がかりも与えないエラーメッセージやスタックトレースなどという理由から、解決するのが極めて難しいバグがいくつかあります。ボットであると判断され、拒絶され、しかもどうしてなのかわからないのです。

本書では、Webサイトでの難しいこと(フォームサブミット、難しいデータの抽出とクリーニング、JavaScriptの実行など)を行う多数の方法について書いてきました。本章は、広範なテーマに関する技法(HTTPヘッダ、CSS、HTMLなど)を簡単にまとめて述べます。しかし、サイトの自動Webスクレイピングを防止するという目的のために置かれた妨害を乗り越えるという共通点があります。

この情報がどれだけ読者にいますぐ役立つかとは別に、本章にざっと目を通しておくことを強く勧めます。非常に難しいバグや問題防止のために、これらがいつ役立つかは予見できないからです。

14.1 倫理についての注意

本書の最初のほうで、Webスクレイピングの置かれた法的にグレーの領域と、スクレイピングに際しての倫理上のガイドラインについて述べました。正直なところ、本章は倫理的に、おそらく書くのが最も難しい章です。私のWebサイトは、ボット、スパマー、Webスクレイパー、その他あらゆる望ましくないサイバーゲストに、読者もおそらくそうでしょうが、悩まされてきました。それなのに、さらに優れたボットの作り方を教えるのでしょうか。 ...

Get PythonによるWebスクレイピング 第2版 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.