我使用以下代码从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 :(得分:0)
嗯,解决方案是实现自定义项管道以将结果存储在文件中 - 稍后再读取结果。
或者,您也可以在Scrapy中配置导出。例如,将项目导出到名为results.json
的文件中:
settings.overrides['FEED_FORMAT'] = 'json'
settings.overrides['FEED_URI'] = 'results.json'
要避免临时文件,您应该使用自定义管道类并在spider_closed
信号上处理结果。
您可以参考此答案以获取更多详细信息:https://stackoverflow.com/a/23574703/3941341