2012-03-26 58 views
21

Đây là Windows 7 với python 2,7Scrapy nhện không tìm thấy lỗi

tôi có một dự án scrapy trong một thư mục gọi là mũ (đây là nơi scrapy.cfg là)

nhện của tôi nằm ở mũ \ mũ \ nhện \ campSpider.py

tôi cd vào dự án scrapy và cố gắng chạy

scrapy crawl campSpider -o items.json -t json 

tôi nhận được một lỗi mà các cô gái nhỏ không thể được tìm thấy. Tên lớp 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' 

Am tôi thiếu một số mục cấu hình?

Trả lời

39

Hãy chắc chắn rằng bạn đã đặt "tên" tài sản của nhện. Ví dụ:

class campSpider(BaseSpider): 
    name = 'campSpider' 

Nếu không có thuộc tính tên, người quản lý phế liệu sẽ không thể tìm thấy nhện của bạn.

2

Bạn đã thiết lập cài đặt SPIDER_MODULES chưa?

SPIDER_MODULES

Mặc định: []

Một danh sách các module nơi Scrapy sẽ tìm kiếm nhện.

Ví dụ:

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

16

Cũng đảm bảo rằng dự án của bạn không được gọi là scrapy! Tôi đã phạm sai lầm và đổi tên nó đã khắc phục được sự cố.

+3

Vui mừng tôi thấy điều này trước khi chi tiêu giờ cố gắng tìm nó ra: P – cdvv7788

+0

Đây là kỳ lạ nhất lỗi tôi từng có – nmu

+0

phải không? cảm ơn cho những người đứng đầu lên? –

1

đảm bảo rằng tệp nhện của bạn được lưu trong thư mục spider của bạn. Trình thu thập thông tin tìm kiếm tên nhện trong thư mục spider

2

Bạn phải đặt tên cho con nhện của mình.

Tuy nhiên, BaseSpiderphản, sử dụng Spider để thay thế.

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

Dự án nên đã được tạo ra bởi lệnh startproject:

scrapy startproject project_name 

nào mang đến cho bạn những cây thư mục sau:

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 
      ... 

Hãy chắc chắn rằng settings.py có định nghĩa về mô-đun nhện của bạn. ví dụ:

BOT_NAME = 'bot_name' # Usually equals to your project_name 

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

Bạn nên không có vấn đề để chạy nhện của bạn tại địa phương hoặc trên ScrappingHub.

-1

Kiểm tra thụt lề quá, lớp cho con nhện của tôi đã thụt vào một tab. Bằng cách nào đó mà làm cho lớp không hợp lệ hoặc một cái gì đó.

0

Thử chạy scrapy list trên dòng lệnh. Nếu có bất kỳ lỗi nào trên con nhện, nó sẽ phát hiện ra nó.

Trong trường hợp của tôi, tôi đã thẳng thừng sao chép mã từ một dự án khác và quên thay đổi tên dự án từ việc nhập khẩu mô-đun nhện

Các vấn đề liên quan