您的位置:首页 > 其它

ImportError: cannot import name xx (scrapy爬虫之xx_spider.py和xxItem.py文件中import出错的问题)

2018-08-28 22:05 337 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40795214/article/details/82155126

问题描述:

ImportError:“ImportError: cannot import name jianshuItem”

[code][root@Uu jianshu]# scrapy crawl jianshu
Traceback (most recent call last):
File "/usr/bin/scrapy", line 11, in <module>
sys.exit(execute())
File "/usr/lib64/python2.7/site-packages/scrapy/cmdline.py", line 149, in execute
cmd.crawler_process = CrawlerProcess(settings)
File "/usr/lib64/python2.7/site-packages/scrapy/crawler.py", line 249, in __init__
super(CrawlerProcess, self).__init__(settings)
File "/usr/lib64/python2.7/site-packages/scrapy/crawler.py", line 137, in __init__
self.spider_loader = _get_spider_loader(settings)
File "/usr/lib64/python2.7/site-packages/scrapy/crawler.py", line 336, in _get_spider_loader
return loader_cls.from_settings(settings.frozencopy())
File "/usr/lib64/python2.7/site-packages/scrapy/spiderloader.py", line 61, in from_settings
return cls(settings)
File "/usr/lib64/python2.7/site-packages/scrapy/spiderloader.py", line 25, in __init__
self._load_all_spiders()
File "/usr/lib64/python2.7/site-packages/scrapy/spiderloader.py", line 47, in _load_all_spiders
for module in walk_modules(name):
File "/usr/lib64/python2.7/site-packages/scrapy/utils/misc.py", line 71, in walk_modules
submod = import_module(fullpath)
File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/home/BS/scrapy/jianshu/jianshu/spiders/jianshu_Spider.py", line 2, in <module>
from jianshu.items import jianshuItem
ImportError: cannot import name jianshuItem

 解决问题,过程如下:

 

[code][root@Uu jianshu]# cat items.py
# -*- coding: utf-8 -*-

# Define here the models for your scraped items
#
# See documentation in:
# https://doc.scrapy.org/en/latest/topics/items.html

import scrapy

class JianshuItem(scrapy.Item):
# define the fields for your item here like:
title = scrapy.Field()
url = scrapy.Field()
author = scrapy.Field()
readNum = scrapy.Field()
commentNum = scrapy.Field()
likeNum = scrapy.Field()
~
~
"items.py" 18L, 420C written
[root@Uu spiders]# vi jianshu_Spider.py
import scrapy
from jianshu.items import JianshuItem

class jianshu_spider(scrapy.Spider):
name = 'jianshu'
allowed_domains = ['www.jianshu.com']
start_urls = ['http://www.jianshu.com/top/monthly']

def parse(self , response):
item = JianshuItem()
selector = Selector(response)
selector.xpath('//ul[@class="article-list thumbnails"]/li')
for article in articles:
title = article.xpath('//div/h4/a/text()').extract()
url = article.xpath('//div/h4/a/@href').extract()
author = article.xpath('//div/p/a/text()').extract()
item['title'] = title
item['url'] = url
item['author'] = author
yield item

~
~
~
~
~
"jianshu_Spider.py" 21L, 625C written

 解决思路:

解决xx_spider.py中的  from   项目名.items   import   item.py中class的名字+Item
如项目名为jianshu,item.py中class名字为Jianshu,则,此处为:from jianshu.items import JianshuItem ,否则将会报出如上错误。

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: