6章Webクローラーの開発
これまで取り上げた例題は、1枚だけの静的ページであり、やや人工的でした。本章では、複数のページやサイトを横断するような、現実的な問題を取り上げます。
Webクローラーとは、Webを這い回る様子がクロールしているようであるところからそう呼ばれています。その本質は、あるURLのページ内容を取得し、そのページに他のURLがないか調べ、ページを取得する、ということを再帰的に繰り返すことです。
しかし、Webをクロールできるからといって、常にクロールして良いとは限りません。先ほどの例で使用したスクレイパーは、必要なデータがすべて1つのページにあるような状況では効果的です。Webクローラーを使う場合には、帯域幅をどれだけ使っているか、ターゲットとなるサーバーの負荷を軽減する方法がないか、などを見極める努力をする必要があります。
6.1 単一ドメインを走査する
「6次のウィキペディア(Six Degrees of Wikipedia)」を知らなくても、同じような名前の「6次のケビン・ベーコン(Six Degrees of Kevin Bacon)」というものもあります†1。どちらのゲームも、一見関連のない2つのトピックの間のリンクを、(元の2つのトピックを含めて)合計6つ以下の連鎖で結ぶことがゴールです。ここで言うリンクとは、「6次のウィキペディア」であればウィキペディアで互いに参照している項目、「6次のケビン・ベーコン」であれば同じ映画に出演している俳優、などを指します。
[†1] 1990年代に作られた人気の室内ゲーム。https://en.wikipedia.org/wiki/Six_Degrees_of_Kevin_Bacon
例えばエリック・アイドルは、映画『ダドリーの大冒険』(Dudley ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access