2012-03-26 19 views
21

Este es Windows 7 con Python 2.7Scrapy araña no se encuentra el error

Tengo un proyecto scrapy en un directorio llamado tapas (aquí es donde scrapy.cfg es)

Mi araña se encuentra en los casquetes \ tapas \ \ arañas campSpider.py

I CD en el proyecto scrapy y tratar de ejecutar

scrapy crawl campSpider -o items.json -t json 

consigo un error que la araña no se puede encontrar. El nombre de la clase es 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 Me faltan algunos elementos de configuración?

Respuesta

39

Asegúrese de que ha establecido la propiedad "nombre" de la araña. Ejemplo:

class campSpider(BaseSpider): 
    name = 'campSpider' 

Sin la propiedad del nombre, el gerente scrapy no será capaz de encontrar su araña.

2

¿Ha configurado la configuración SPIDER_MODULES?

SPIDER_MODULES

defecto: []

Una lista de los módulos donde Scrapy buscará arañas.

Ejemplo:

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

16

¡También asegúrese de que su proyecto no se llame scrapy! Cometí ese error y el cambio de nombre solucionó el problema.

+3

Glad vi esto antes de pasar horas tratando de averiguarlo: P – cdvv7788

+0

Esta es la más rara error que he tenido – nmu

+0

¿verdad? ¿Gracias por el aviso? –

1

asegúrese de que su archivo spider esté guardado en su directorio spider. el rastreador busca el nombre de araña en el directorio spider

2

Tienes que dar un nombre a tu araña.

Sin embargo, BaseSpider es obsoleta , utilice araña lugar.

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

El proyecto debe haber sido creado por el comando startproject:

scrapy startproject project_name 

que le da el siguiente árbol de directorios:

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

Asegúrese de que settings.py tiene la definición de tu módulo araña. por ejemplo:

BOT_NAME = 'bot_name' # Usually equals to your project_name 

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

que no debería tener problemas para ejecutar su araña en forma local o en ScrappingHub.

-1

Revisar la sangría también, la clase de mi araña fue sangrada una sola pestaña. De alguna manera eso hace que la clase sea inválida o algo así.

0

Intenta ejecutar scrapy list en la línea de comandos. Si hay algún error en la araña lo detectará.

En mi caso, se copia sin rodeos código de otro proyecto y se olvide de cambiar el nombre del proyecto de la importación del módulo de araña

Cuestiones relacionadas