Lorsque j'essaie d'exécuter un scrap, j'obtiens cette erreur ImportError: aucun élément nommé de module
Je viens d'ajouter dans items.py la liste des choses que je veux gratter et dans le spider.py, j'ai importé la classe à partir de spider.items import SpiderItem
Ne sais pas pourquoi ce n'est pas le charger ...
La mise en paquet est ...
./spider
./spider/pipelines.py
./spider/settings.py
./spider/spiders
./spider/spiders/spider_spider.py
./spider/spiders/test.py
./spider/spiders/__init__.py
./spider/middlewares.py
./spider/__init__.py
./spider/items.py
De ce message sur les groupes Google :
Votre module araignée porte le même nom que votre module de projet, donc Python tente d'importer des éléments relatifs à byub.py araignée.
Vous faites face à un regret commun des importations python, voir http://www.python.org/dev/peps/pep-0328
correctifs rapides:
from __future__ import absolute_import
dans araignée byub.py.Je suis arrivé à faire face à ce problème parce que mon nom d'araignée est le même avec le projet scrapy.
Il suffit de renommer le nom de l'araignée.
C'est une bonne solution pour renommer votre module d'araignée.
Mais n'oubliez pas de supprimer le fichier *.pyc
associé après avoir renommé , étant donné que le fichier *.pyc
joue un rôle tel que cache .
Désolé pour le nécropostage. Essayez de mettre dans le fichier ./spider/__init__.py
cette
import items
Sans renommer aucun fichier, remplacez from spider.items import SpiderItem
par from .. import items
et appelez-le items.SpiderItem
dans votre code.
Il manque la ligne suivante après vos instructions d'importation dans votre fichier spider.py.
classe ProjectnamegoeshereSpider (BaseSpider):