7章Webクローリングのモデル
Webクローラーは、さまざまなWebサイトから多様なデータをスクレイピングして収集する必要がありますが、スクレイピングの対象となるサイトやデータそのものを、クローラーの都合で変更できるわけではありません。クリーンでスケーラブルなコードを書くことは、たとえデータや入力を制御できたとしても簡単ではありませんが、先ほどの理由もあり、Webクローラーのコードにはその組織特有の問題がよく起こります。
例えば、さまざまなWebサイトからニュース記事やブログの投稿を収集する依頼を受けたとします。当然、それぞれのWebサイトのテンプレートやレイアウトは異なります。あるWebサイトでは、h1タグに記事のタイトルが記述されています。しかし別のサイトでは、Webサイト自体のタイトルがh1タグ記述されており、記事のタイトルは<span id="title">に記述されています。
Webサイトごとの制御を柔軟にし、大量のコードを書き加えなくても新たなWebサイトや既存のWebサイトの変更などに、迅速に対応しなければなりません。
また商品価格をさまざまなWebサイトからスクレイピングし、同じ商品の価格を比較するといった依頼を受けることもあるでしょう。価格はさまざまな通貨で表示されており、Web以外の情報源や外部データと組み合わせなければならないこともあるでしょう。
Webクローラーの用途は無数にありますが、大規模でスケーラブルなクローラーは、概ねいくつかのパターンに分類できます。これらのパターンを学び、使われる状況を把握すれば、Webクローラーの保守性と堅牢性を高めることができます。
本章では、さまざまなWebサイトから「データ型」の異なるデータ(レストランの評価、ニュース記事、企業情報)を収集しデータベースに保存するようなWebクローラーに焦点を当てます。 ...
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