2016-05-17 86 views
1

我试图运行两个scrapy蜘蛛同时使用瑞德。 我执行scrapyd - 同时运行蜘蛛的错误

curl http://localhost:6800/schedule.json -d project=myproject -d spider=somespider 

结果 - { “地位”: “OK”, “作业ID”: “6487ec79947edab326d6db28a2d86511e8247444”} 则:

curl http://localhost:6800/schedule.json -d project=myproject -d spider=somespider2 

结果 -

python2.7/site-packages/twisted/web/server.py", line 234, in render 
      body = resrc.render(self) 
     --- <exception caught here> 
     File "/usr/local/lib/python2.7/json/decoder.py", line 383, in raw_decode 
raise ValueError("No JSON object could be decoded") 
      exceptions.ValueError: No JSON object could be decoded 

,每次我为scrapyd运行curl - 我得到了相同的结果 - exceptions.ValueError:没有JSON对象可以被解码。唯一一种继续使用scrapyd的方法 - 重新启动它。 我如何使用scrapyd运行多个蜘蛛?为什么我得到这个错误?


我用scrapy 1.1,scrapyd 1.1,蟒蛇2.7.9

+0

想必这个问题涉及到SQLITE3版本 – Rainmaker

回答

0

问题出在安装在我的Centos6.5中的sqlite3上。 决定: 需要连接建立后

self.conn.text_factory = bytes 

添加到SqliteDict和SqlitePriorityQueue类的scrapyd/sqlite.py b/scrapyd/sqlite.py

0

你的错误无关的scrapyd,最有可能的错误是在你的蜘蛛 'somespider2'。只要确保你能够通过命令行正确运行'somespider2'。

+0

那么,为什么当我运行someSpider twise发生同样的错误? (第一次scrapyd返回工作ID)更重要的是,如果我用'listspiders'参数执行两次curl,我会得到同样的错误。 (第一次scrapid返回正确的结果) – Rainmaker