小编cor*_*org的帖子

在发送spider_closed信号之前调用Python Scrapy函数?

我使用scrapy编写了一个蜘蛛,它将一大堆HtmlXPathSelector请求分离到各个站点.在每个请求(异步)满足后,它会在.csv文件中创建一行数据.不可能看到最后满足哪个请求,因为如果还没有提取数据则重复请求(偶尔会错过几次数据).即使我从一个整洁的列表开始,输出也是混乱的,因为在提取数据后立即写入行.

现在我想基于一列对该列表进行排序,但是在每个请求完成之后.'spider_closed'信号可以用来触发真正的功能吗?如下所示,我尝试将信号与调度程序连接,但这个函数似乎只打印出来的东西,而不是使用变量甚至调用其他函数.

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
Run Code Online (Sandbox Code Playgroud)

python signals web-crawler scrapy

5
推荐指数
1
解决办法
882
查看次数

标签 统计

python ×1

scrapy ×1

signals ×1

web-crawler ×1