【发布时间】:2016-10-13 13:42:29
【问题描述】:
我知道这个问题已经被广泛讨论,但我没有找到答案。我收到错误 ImportError: No module named items。我用 $ scrapy startproject pluto 创建了一个新项目,但我没有相同的名称(在项目、类等名称中),以避免problem with naming。
pluto_spider.py:
import scrapy
from items import PlutoItem
class PlutoSpider(scrapy.Spider):
name = "plutoProj"
allowed_domains = ['successories.com']
start_urls = [
'http://www.successories.com/iquote/category/39/inspirational-quotes/4',
'http://www.successories.com/iquote/category/39/inspirational-quotes/6',
]
def parse(self,response):
items = []
for quote in response.css('div.quotebox'):
item = PlutoItem()
item['author'] = quote.css('span.author a::text').extract_first()
item['quote'] = quote.css('div.quote a::text').extract_first()
items.append(item)
return items
item.py:
import scrapy
class PlutoItem(scrapy.Item):
author = scrapy.Field()
quote = scrapy.Field()
这是我的文件夹的层次结构:
/pluto
/pluto/scrapy.cfg
/pluto/pluto/__init__.pyc
/pluto/pluto/__init__.py
/pluto/pluto/items.py
/pluto/pluto/pipelines.py
/pluto/pluto/settings.py
/pluto/pluto/settings.pyc
/pluto/pluto/spiders/__init__.py
/pluto/pluto/spiders/__init__.pyc
/pluto/pluto/spiders/pluto_spider.py
/pluto/pluto/spiders/pluto_spider.pyc
【问题讨论】:
-
您的模块名称是
item.py还是items.py?我看到你用两个名字引用了同一个文件。 -
您从哪个目录执行 `scrapy crawl xxx'(或任何其他命令)?
-
你能试试
from pluto import items和/或import ..items