2015-12-17 15 views
5

Sto facendo tutorial scrapy in scrapy documentation. Questa è la mia directory corrente assomiglia:Scrapy non trova ragno

. 
├── scrapy.cfg 
└── tutorial 
    ├── __init__.py 
    ├── __init__.pyc 
    ├── items.py 
    ├── pipelines.py 
    ├── settings.py 
    ├── settings.pyc 
    └── spiders 
     ├── __init__.py 
     ├── __init__.pyc 
     └── dmoz_spider 

Il dmoz_spider.py è la stessa come descritto nella pagina Scrapy tutorial.

import scrapy 

class DmozSpider(scrapy.Spider): 
    name = "dmoz" 
    allowed_domains = ["dmoz.org"] 
    start_urls = [ 
     "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/", 
     "http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/" 
    ] 

    def parse(self, response): 
     filename = response.url.split("/")[-2] + '.html' 
     with open(filename, 'wb') as f: 
      f.write(response.body) 

Poi ho eseguito questo comando dalla directory corrente

scrapy crawl dmoz 

Ma ottengo il messaggio di errore:

2015-12-17 12:23:22 [scrapy] INFO: Scrapy 1.0.3 started (bot: tutorial) 
2015-12-17 12:23:22 [scrapy] INFO: Optional features available: ssl, http11 
2015-12-17 12:23:22 [scrapy] INFO: Overridden settings: {'NEWSPIDER_MODULE': 'tutorial.spiders', 'SPIDER_MODULES': ['tutorial.spiders'], 'BOT_NAME': 'tutorial'} 
    ... 
     raise KeyError("Spider not found: {}".format(spider_name)) 
    KeyError: 'Spider not found: dmoz' 

C'è qualche suggerimento che parte ho fatto di sbagliato? Ho controllato similar question nello stack overflow e seguo la soluzione lì. Ma ho ancora l'errore.

+0

puoi condividere quali output per 'scrapy list', e anche da quale cartella stai eseguendo questo – eLRuLL

+0

eseguo il comando dalla directory che contiene scrapy.cfg. Ho provato a eseguire la lista scrapy, non mostra nulla. – endeavour90

risposta

2

È necessario aggiungere un'estensione .py al file dmoz_spider. Il nome del file deve essere dmoz_spider.py.

+0

Grazie. Non ho mai pensato che fosse il problema – endeavour90