我使用 scrapy 编写了一个爬虫,它会向不同的站点发出一大堆 HtmlXPathSelector 请求。在(异步)满足每个请求后,它会在 .csv 文件中创建一行数据。无法查看最后满足哪个请求,因为如果尚未提取数据,则重复请求(有时它会丢失几次数据)。即使我从一个整洁的列表开始,输出也很混乱,因为这些行是在提取数据后立即写入的。
现在我想根据一列对该列表进行排序,但在每个请求完成之后。'spider_close' 信号可以用来触发真正的功能吗?如下所示,我尝试将信号与调度程序连接起来,但这个函数似乎只打印出东西,而不是处理变量甚至调用其他函数。
def start_requests(self)
... dispatcher.connect(self.spider_closed, signal=signals.engine_stopped) ....
def spider_closed(spider):
print 'this gets printed alright' # <-only if the next line is omitted...
out = self.AnotherFunction(in) # <-This doesn't seem to run