Scrapy process.crawl() 将数据导出到 json

Posted

技术标签:

【中文标题】Scrapy process.crawl() 将数据导出到 json【英文标题】:Scrapy process.crawl() to export data to json 【发布时间】:2016-10-18 23:50:29 【问题描述】:

这可能是Passing arguments to process.crawl in Scrapy python 的子问题,但作者将答案(我问自己的子问题没有回答)标记为令人满意的答案。

这是我的问题:我不能使用scrapy crawl mySpider -a start_urls(myUrl) -o myData.json 相反,我想/需要使用crawlerProcess.crawl(spider) 我已经想出了几种传递参数的方法(无论如何它在我链接的问题中得到了回答)但我无法理解我应该如何告诉它转储数据进入 myData.json...-o myData.json 部分 有人有建议吗?还是我只是不明白它应该如何工作..?

代码如下:

crawlerProcess = CrawlerProcess(settings)
crawlerProcess.install()
crawlerProcess.configure()

spider = challenges(start_urls=["http://www.myUrl.html"])
crawlerProcess.crawl(spider)
#For now i am just trying to get that bit of code to work but obviously it will become a loop later.

dispatcher.connect(handleSpiderIdle, signals.spider_idle)

log.start()
print "Starting crawler."
crawlerProcess.start()
print "Crawler stopped."

【问题讨论】:

【参考方案1】:

您需要在设置中指定它:

process = CrawlerProcess(
    'FEED_URI': 'file:///tmp/export.json',
)

process.crawl(MySpider)
process.start()

【讨论】:

但是你不能使用它来传递几个参数,例如-o Sachin_urls.csv -t csv -L INFO --logfile Sachin.log。当使用 `scrapy crawl -a -o Sachin_urls.csv -t csv myspidername -L INFO --logfile Sachin.log 时,这将完美运行。有什么指点吗?

以上是关于Scrapy process.crawl() 将数据导出到 json的主要内容,如果未能解决你的问题,请参考以下文章

Scrapy框架的执行流程解析

Scrapy - 反应堆不可重启[重复]

Twisted - CRITICAL - Deferred中的未处理错误...没有堆栈跟踪

将数据传递给 viewController

将数据传递给服务 - android?

vue js将数据传递给组件