我从网站上检索了数据,并使用django作为服务器。 Spider的工作完成后,我想通知我的服务器爬网是否完成。
我找到了可用于spider_closed
方法的信号模块。
但是我仍然不知道如何从管道向服务器响应数据。
class ScrapyAppPipeline(object):
def __init__(self, unique_id, *args, **kwargs):
self.unique_id = unique_id
@classmethod
def from_crawler(cls, crawler):
return cls(
unique_id=crawler.settings.get('unique_id'),
)
def process_item(self, item, spider):
scrapy_item = ScrapyItem()
scrapy_item.unique_id = self.unique_id
scrapy_item.title = item['title']
scrapy_item.published_date = item['published_date']
scrapy_item.views = item['views']
scrapy_item.recommends = item['recommends']
scrapy_item.url = item['url']
scrapy_item.save()
return item
def spider_closed(self, spider):
# how to notice 'crawling is done' to the server?