2014-04-01 3 views
3

scrapyd에서 기존의 scrapy 프로젝트를 실행하려고하면 오류가 발생합니다.Scrapyd가 프로젝트 이름을 찾을 수 없습니다.

나는 whatismyip.com을 다운로드하는 테스트 목적 (test_ip_spider_1x)에 사용 된 프로젝트의 작업 스파이더 (url_finder)와 작업 스파이더를 가지고 있습니다.

나는 succesffully scrapyd (apt-get 사용)를 설치했으며 지금은 scrapyd에서 거미를 실행하고 싶습니다. 그래서 나는 실행이 반환

curl http://localhost:6800/schedule.json -d project=url_finder -d spider=test_ip_spider_1x 

: 프로젝트에 문제가 있음을 시사하는 것 같다

{"status": "error", "message": "'url_finder'"} 

합니다. 그러나 내가 실행할 때 : scrapy crawl test_ip_spider_1x 모든 것이 잘 돌아갑니다.

2014-04-01 11:40:22-0400 [HTTPChannel,0,127.0.0.1] 127.0.0.1 - - [01/Apr/2014:15:40:21 +0000] "POST /schedule.json HTTP/1.1" 200 47 "-" "curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3" 
2014-04-01 11:40:58-0400 [HTTPChannel,1,127.0.0.1] 127.0.0.1 - - [01/Apr/2014:15:40:57 +0000] "GET/HTTP/1.1" 200 747 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36" 
2014-04-01 11:41:01-0400 [HTTPChannel,1,127.0.0.1] 127.0.0.1 - - [01/Apr/2014:15:41:00 +0000] "GET /logs/ HTTP/1.1" 200 1203 "http://localhost:6800/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36" 
2014-04-01 11:41:03-0400 [HTTPChannel,1,127.0.0.1] 127.0.0.1 - - [01/Apr/2014:15:41:02 +0000] "GET /logs/scrapyd.log HTTP/1.1" 200 36938 "http://localhost:6800/logs/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36" 
2014-04-01 11:42:02-0400 [HTTPChannel,2,127.0.0.1] Unhandled Error 
    Traceback (most recent call last): 
     File "/usr/local/lib/python2.7/dist-packages/twisted/web/http.py", line 1730, in allContentReceived 
     req.requestReceived(command, path, version) 
     File "/usr/local/lib/python2.7/dist-packages/twisted/web/http.py", line 826, in requestReceived 
     self.process() 
     File "/usr/local/lib/python2.7/dist-packages/twisted/web/server.py", line 189, in process 
     self.render(resrc) 
     File "/usr/local/lib/python2.7/dist-packages/twisted/web/server.py", line 238, in render 
     body = resrc.render(self) 
    --- <exception caught here> --- 
     File "/usr/lib/pymodules/python2.7/scrapyd/webservice.py", line 18, in render 
     return JsonResource.render(self, txrequest) 
     File "/usr/local/lib/python2.7/dist-packages/scrapy/utils/txweb.py", line 10, in render 
     r = resource.Resource.render(self, txrequest) 
     File "/usr/local/lib/python2.7/dist-packages/twisted/web/resource.py", line 250, in render 
     return m(request) 
     File "/usr/lib/pymodules/python2.7/scrapyd/webservice.py", line 37, in render_POST 
     self.root.scheduler.schedule(project, spider, **args) 
     File "/usr/lib/pymodules/python2.7/scrapyd/scheduler.py", line 15, in schedule 
     q = self.queues[project] 
    exceptions.KeyError: 'url_finder' 

2014-04-01 11:42:02-0400 [HTTPChannel,2,127.0.0.1] 127.0.0.1 - - [01/Apr/2014:15:42:01 +0000] "POST /schedule.json HTTP/1.1" 200 47 "-" "curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3" 

모든 아이디어 : 나는 웹 인터페이스에서 scrapyd 로그를 확인하면 , 이것은 내가 무엇을 얻을?

+0

마지막 줄 앞에 스택 추적을 게시하는 데 도움이 될 수 있습니다. – shaktimaan

+0

감사합니다. warunsi - 추가되었습니다. – gpanterov

+0

scrapyd를 사용한 적이 없으므로 어리석은 질문 인 경우 용서해주세요.하지만 먼저 프로젝트를 배포해야합니까? scrapyd가 프로젝트 이름을 찾지 못한 이유가 이것일까요? – gpanterov

답변

9

scrapyd 프로젝트를 실행하려면 먼저 배포해야합니다. 이것은 온라인 설명서에서 잘 설명되지 않았습니다 (특히 처음 사용자의 경우).

하는 scrapyd-배포를 설치합니다 : 여기에 하나 개 나를 위해 일한 솔루션입니다 우분투 또는 이와 유사한이 경우 실행할 수 있습니다 당신의 scrapy 프로젝트 폴더 편집 scrapy.cfg에서

apt-get install scrapyd-deploy 

과 행의 주석을 해제

url = http://localhost:6800/ 

이것은 배포 대상입니다. 치료는이 위치에 프로젝트를 배포합니다.

scrapyd-deploy default -p url_finder 
: 프로젝트 (url_finder)를 배포 할 수 있습니다

default http://localhost:6800/ 

다음 : 유사

scrapyd-deploy -l 

이 출력해야 뭔가 : 다음으로, 배포 대상을 볼 수 있는지 scrapyd을 확인하십시오

마지막으로 스파이더를 실행하십시오.

curl http://localhost:6800/schedule.json -d project=url_finder -d spider=test_ip_spider_1x 
관련 문제