このようなスクレイピングされたアイテムがあるとします
{
name: "Foo",
country: "US",
url: "http://..."
}
パイプラインで、URL に GET リクエストを送信し、content_type や status などのヘッダーを確認したいと考えています。ヘッダーが特定の条件を満たしていない場合、アイテムをドロップしたい。お気に入り
class MyPipeline(object):
def process_item(self, item, spider):
request(item['url'], function(response) {
if (...) {
raise DropItem()
}
return item
}, function(error){
raise DropItem()
})
このような臭いは、パイプラインでは不可能です。どう思いますか?これを達成する方法はありますか?
くも:
import scrapy
import json
class StationSpider(scrapy.Spider):
name = 'station'
start_urls = ['http://...']
def parse(self, response):
jsonResponse = json.loads(response.body_as_unicode())
for station in jsonResponse:
yield station