2012-03-26 6 views
21

이 파이썬으로 윈도우 7 2.7Scrapy 거미 오류를 찾을 수 없습니다

내가 가진라는 디렉토리 모자에 scrapy 프로젝트 (scrapy.cfg이 곳은) 내 거미가 캡에 위치한

이 모자 \

\ 거미 \ campSpider.py

I 상기 scrapy 프로젝트로 CD와 나는 거미 찾을 수 없다는 오류가 발생

scrapy crawl campSpider -o items.json -t json 

를 실행 해보십시오. 클래스 이름 campSpider

... 
    spider = self.crawler.spiders.create(spname, **opts.spargs) 
    File "c:\Python27\lib\site-packages\scrapy-0.14.0.2841-py2.7-win32.egg\scrapy\spidermanager.py", l 
ine 43, in create 
    raise KeyError("Spider not found: %s" % spider_name) 
KeyError: 'Spider not found: campSpider' 

오전 나는 몇 가지 구성 항목을 누락?

답변

39

당신이 거미의 "이름"속성를 설정해야합니다. 예 : 이름 속성없이

class campSpider(BaseSpider): 
    name = 'campSpider' 

는 scrapy 매니저는 거미를 찾을 수 없습니다.

2

SPIDER_MODULES 설정을 구성 했습니까?

SPIDER_MODULES

기본값 : Scrapy 거미를 찾습니다 모듈의 []

목록입니다.

예 :

SPIDER_MODULES = ['mybot.spiders_prod', 'mybot.spiders_dev']

16

또한 프로젝트 이름이 scrapy이 아닌지 확인하십시오! 나는 그 실수를하고 이름을 바꿔 문제를 해결했습니다.

+3

거미 모듈 가져 오기에서 프로젝트 이름을 변경하는 것을 잊지했다 : P – cdvv7788

+0

이것은 이상한입니다 오류가 – nmu

+0

맞았나요? 머리를 가져 주셔서 고마워요? –

1

스파이더 파일이 스파이더 디렉토리에 저장되어 있는지 확인하십시오. 크롤러는 스파이더 디렉토리에서 거미 이름을 찾습니다.

2

거미에게 이름을 지정해야합니다.

그러나 BaseSpider 사용되지 않는 스파이더를 대신 사용합니다.

from scrapy.spiders import Spider 
class campSpider(Spider): 
    name = 'campSpider' 

이 프로젝트는 startproject 명령에 의해 생성되어 있어야합니다 :

project_name/ 
    scrapy.cfg   # deploy configuration file 

    project_name/    # project's Python module, you'll import your code from here 
     __init__.py 

     items.py   # project items file 

     pipelines.py  # project pipelines file 

     settings.py  # project settings file 

     spiders/   # a directory where you'll later put your spiders 
      __init__.py 
      ... 

확실히 그 settings.py을 확인하십시오 : 당신이 다음 디렉토리 트리를 제공

scrapy startproject project_name 

스파이더 모듈의 정의가 있습니다. 예를 들면 :

BOT_NAME = 'bot_name' # Usually equals to your project_name 

SPIDER_MODULES = ['project_name.spiders'] 
NEWSPIDER_MODULE = 'project_name.spiders' 

당신은 로컬 또는 ScrappingHub에 거미를 실행하는 데 아무런 문제가 없습니다.

-1

들여 쓰기를 확인해도 내 스파이더 용 클래스는 한 탭 들여 쓰기되었습니다. 어쨌든 그것은 클래스를 무효화시킵니다.

0

scrapy list을 명령 줄에서 실행 해보십시오. 스파이더에 오류가 있으면 감지합니다. 내 경우

, 나는 퉁명스럽게 다른 프로젝트에서 코드를 복사 다행 내가 그것을 알아 내려고 시간을 소비하기 전에 이것을보고

관련 문제