2016-05-17 87 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