5章Scrapy

前章では、大規模でスケーラブルで(最も重要なことに)保守性に優れたWebクローラを構築するための技法とパターンを示しました。プログラムを書くのはそう難しくはありませんが、ライブラリ、フレームワーク、GUIを備えたツールを使い、プログラムを書かなくてもこれらを行うこと、あるいは、プログラミングの手間を省くことができます。

本章では、クローラ開発に最適なフレームワークであるScrapyを紹介します。本書『PythonによるWebスクレイピング』の初版執筆時にはScrapyはまだPython 3.xに対応していませんでしたから、紹介は1節だけでした。現在では、ライブラリが更新されてPython 3.3+に対応しているだけでなく、機能が追加されており、1章分の内容を紹介できるようになって喜んでいます。

Webクローラを書く上での問題点の1つは、ページの全リンクを探し出し、内部および外部リンクの相違を評価して、新たなページに移るという同じ作業を繰り返し行わなければならないことです。この基本パターンは知っておくと役に立ち、プログラムとして書くこともできますが、Scrapyのライブラリを使えば、多数の細かいことがらを自動的に処理できます。

もちろん、Scrapyには読心術の機能は備わっていません。ページテンプレートを定義し、スクレイピングの開始場所を指定し、対象ページのURLパターンを定義するというような作業は必要です。しかし、きちんとしたフレームワークのおかげで、コードははるかに読みやすくなります。

5.1 Scrapyのインストール

ScrapyのWebサイト(https://scrapy.org/download/)には、ダウンロード用のツールも、pipのようなサードパーティのインストールマネージャを使ってScrapyをインストールするためのガイドもあります。 ...

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.