
162
6 章 Scrapy を使った重量スクレイピング
❷ 画像
URL
リクエストを実行した後に、その結果を
item_completed
メソッドに渡す。
❸ この
Python
リスト内包表記は、成功した(
[(True, Image), (False, Image) ...]
形式の)結果タプル
のリストを抽出し、
settings.py
の
IMAGES_STORE
変数で指定したディレクトリに対する相対ファイルパ
スを格納する。
スパイダーとパイプラインが定義できました。あとはこのパイプラインを
settings.py
モジュー
ルに追加し、
IMAGES_STORE
変数に画像を保存したいディレクトリを設定するだけです。
# nobel_winners/nobel_winners/settings.py
...
ITEM_PIPELINES = {'nobel_winners.pipelines'\
'.NobelImagesPipeline':1}
IMAGES_STORE = 'images'
プロジェクトの
nobel_winners
ルートディレクトリからこの新しいスパイダーを実行し、出力
を確認してみましょう。
$ scrapy crawl nwinners_minibio -o minibios.json
...
2015-... DEBUG: Scraped from <200 http:.../Albert_Claude>
{'image_urls': [],
'link': u'http://en.wikipedia.org/wiki/Albert_Claude', ...