【问题标题】:Queue to allow Scrapy Analysis队列以允许 Scrapy 分析
【发布时间】:2015-05-29 01:10:12
【问题描述】:

我几乎是一个scrapy(和python)新手,我正在尝试弄清楚如何使用scrapy并在一个脚本中分析所有数据。该程序创建一个 json,我想在程序完成抓取后打开该 json。

发生的情况是程序试图在scrapy完成之前打开json,因为实际的os命令已经执行。我相信答案可能是使用线程和队列,但我无法弄清楚它们是如何实现的。这是我的代码:

def crawl():
    os.system("scrapy crawl average_cur -o currency.json -t json")

    inFile=open('currency.json')
    data=json.load(inFile)
    print data


crawl()

【问题讨论】:

  • 这很奇怪,你确定它是在scrapy完成之前尝试加载文件吗?这没有多大意义,因为os.system 等待它完成。您可以尝试改用subprocess.check_output

标签: python multithreading queue scrapy


【解决方案1】:

我认为scrapy信号可以解决问题,这个link可能会有所帮助,或者你可以写extension,然后你可以从那里做任何你想做的操作。

在扩展中,spider_closed() 将帮助您完成任务。

def spider_closed(self, spider):
   # perform your task here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 2012-06-15
    相关资源
    最近更新 更多