2015-07-12 32 views
0

运行我使用下面的代码运行从一个Python脚本我的履带式后获得的返回值:Scrapy 1.0 - 从python脚本

import scrapy 
from scrapy.crawler import CrawlerProcess 

process = CrawlerProcess() 

process.crawl(MySpider) 
process.start() # the script will block here until the crawling is finished 

在我的MySpider返回一个对象。

如何从此获得返回值?请记住这是Scrapy 1.0。我发现的所有例子都是针对旧版本的Scrapy。

上面的代码是:http://doc.scrapy.org/en/latest/topics/practices.html#run-scrapy-from-a-script

回答

0

好了,解决办法是实现自定义项目管道存储在一个文件中的结果 - 后来读取结果。

或者,您也可以在Scrapy中配置导出来完成此操作。例如导出的项目在一个名为results.json文件:

settings.overrides['FEED_FORMAT'] = 'json' 
settings.overrides['FEED_URI'] = 'results.json' 

为避免你应该使用一个自定义管道类,并在spider_closed信号处理的结果中的临时文件。

您可以参考这个答案详细信息:https://stackoverflow.com/a/23574703/3941341

+0

我不想从文件中读取结果。我想要这个物体。有什么办法可以做到吗? –

+0

请阅读我链接到的答案。它也描述了如何做到这一点。 – GHajba

+0

答案是旧版Scrapy。它不适合我。 –