
157
6.8 パイプラインを使ったテキストと画像のスクレイピング
記述してみましょう(したがって、個人ではなく団体に贈られた賞を除外できます)。まず、プロ
ジェクトの
pipelines.py
モジュールに
DropNonPersons
パイプラインを追加します。
# nobel_winners/nobel_winners/settings.py
#
ここでアイテムパイプラインを定義する
#
#
忘れずに
ITEM_PIPELINES
設定にパイプラインを追加する
#
参照:
http://doc.scrapy.org/en/latest/topics/item-pipeline.html
from scrapy.exceptions import DropItem
class DropNonPersons(object):
"""
人物ではない受賞者を削除する
"""
def process_item(self, item, spider):
if not item['gender']: #
❶
raise DropItem("No gender for %s"%item['name'])
return item #
❷
❶ スクレイピングしたアイテムの性別プロパティがウィキデータになかったら、おそらく赤十字社な
どの団体と思われる。本書の可視化では個人の受賞者に的を絞っているので、
DropItem
を使って出
力ストリームからこのアイテムを削除する。
❷ さらなるパイプラインや
Scrapy
による保存のためにアイテムを返す必要がある。 ...