Python 属性错误:';模块';对象没有属性';蜘蛛';

Python 属性错误:';模块';对象没有属性';蜘蛛';,python,scrapy,scrapy-spider,Python,Scrapy,Scrapy Spider,我刚开始学刮痧。所以我就跟着这个。我刚刚写了那个网站上提到的第一个蜘蛛 import scrapy class DmozSpider(scrapy.Spider): name = "dmoz" allowed_domains = ["dmoz.org"] start_urls = [ "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/", "http://w

我刚开始学刮痧。所以我就跟着这个。我刚刚写了那个网站上提到的第一个蜘蛛

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]
        with open(filename, 'wb') as f:
            f.write(response.body)
在项目的根目录上运行此
scrapy crawl dmoz
命令时,会显示以下错误

2015-06-07 21:53:06+0530 [scrapy] INFO: Scrapy 0.14.4 started (bot: tutorial)
2015-06-07 21:53:06+0530 [scrapy] DEBUG: Enabled extensions: LogStats, TelnetConsole, CloseSpider, WebService, CoreStats, MemoryUsage, SpiderState
Traceback (most recent call last):
  File "/usr/bin/scrapy", line 4, in <module>
    execute()
  File "/usr/lib/python2.7/dist-packages/scrapy/cmdline.py", line 132, in execute
    _run_print_help(parser, _run_command, cmd, args, opts)
  File "/usr/lib/python2.7/dist-packages/scrapy/cmdline.py", line 97, in _run_print_help
    func(*a, **kw)
  File "/usr/lib/python2.7/dist-packages/scrapy/cmdline.py", line 139, in _run_command
    cmd.run(args, opts)
  File "/usr/lib/python2.7/dist-packages/scrapy/commands/crawl.py", line 43, in run
    spider = self.crawler.spiders.create(spname, **opts.spargs)
  File "/usr/lib/python2.7/dist-packages/scrapy/command.py", line 34, in crawler
    self._crawler.configure()
  File "/usr/lib/python2.7/dist-packages/scrapy/crawler.py", line 36, in configure
    self.spiders = spman_cls.from_crawler(self)
  File "/usr/lib/python2.7/dist-packages/scrapy/spidermanager.py", line 37, in from_crawler
    return cls.from_settings(crawler.settings)
  File "/usr/lib/python2.7/dist-packages/scrapy/spidermanager.py", line 33, in from_settings
    return cls(settings.getlist('SPIDER_MODULES'))
  File "/usr/lib/python2.7/dist-packages/scrapy/spidermanager.py", line 23, in __init__
    for module in walk_modules(name):
  File "/usr/lib/python2.7/dist-packages/scrapy/utils/misc.py", line 65, in walk_modules
    submod = __import__(fullpath, {}, {}, [''])
  File "/home/avinash/tutorial/tutorial/spiders/dmoz_spider.py", line 3, in <module>
    class DmozSpider(scrapy.Spider):
AttributeError: 'module' object has no attribute 'Spider'
2015-06-07 21:53:06+0530[scrapy]信息:scrapy 0.14.4已启动(机器人:教程)
2015-06-07 21:53:06+0530[scrapy]调试:启用的扩展:LogStats、TelnetConsole、CloseSpider、WebService、CoreStats、MemoryUsage、SpiderState
回溯(最近一次呼叫最后一次):
文件“/usr/bin/scrapy”,第4行,在
执行()
文件“/usr/lib/python2.7/dist packages/scrapy/cmdline.py”,执行中的第132行
_运行\u打印\u帮助(解析器、\u运行\u命令、cmd、args、opts)
文件“/usr/lib/python2.7/dist packages/scrapy/cmdline.py”,第97行,在“运行”和“打印”帮助中
func(*a,**千瓦)
文件“/usr/lib/python2.7/dist packages/scrapy/cmdline.py”,第139行,在_run_命令中
cmd.run(参数、选项)
文件“/usr/lib/python2.7/dist-packages/scrapy/commands/crawl.py”,第43行,运行中
spider=self.crawler.spider.create(spname,**opts.spargs)
文件“/usr/lib/python2.7/dist packages/scrapy/command.py”,第34行,在crawler中
self.\u crawler.configure()
文件“/usr/lib/python2.7/dist packages/scrapy/crawler.py”,第36行,在configure中
self.spider=spman\u cls.来自爬虫(self)
文件“/usr/lib/python2.7/dist packages/scrapy/spidermanager.py”,第37行,来自爬虫程序
从_设置(爬虫程序设置)返回cls
文件“/usr/lib/python2.7/dist packages/scrapy/spidermanager.py”,第33行,在from_设置中
返回cls(settings.getlist('SPIDER_MODULES'))
文件“/usr/lib/python2.7/dist packages/scrapy/spidermanager.py”,第23行,在__
对于walk_模块中的模块(名称):
文件“/usr/lib/python2.7/dist packages/scrapy/utils/misc.py”,第65行,在walk_模块中
submod=uuu导入(完整路径,{},{},['''])
文件“/home/avinash/tutorial/tutorial/spider/dmoz_spider.py”,第3行,在
DmozSpider类(刮擦式蜘蛛):
AttributeError:“模块”对象没有属性“蜘蛛”
也许可以尝试:

from scrapy import Spider
如果您想使用模块的类,仅导入模块是不够的,因为您使用的是旧的Scrapy(0.14.4)和最新的文档


解决方案:升级到适合当前安装版本的Scrapy或read的最新版本

使用
sudo pip安装Scrapy
。如果出现
Python.h missing
错误,请使用
sudo-apt-get-install-Python-dev
()

ImportError:无法导入名称Spider
检查
从scrapy导入*
?(即使它不是pythonic)只有当
scrapy.Spider
是一个模块,而不是导入到
scrapy
包中时,你的版本才会有所不同。如何找到scrapy版本?@AvinashRaj它通常在你运行
scrapy
时输出。您的问题已包含
2015-06-07 21:53:06+0530[scrapy]信息:scrapy 0.14.4已启动(机器人程序:教程)
;-)@AvinashRaj最新版本是0.24.6。0.14是3年多前发布的@AvinashRaj使用Pipin安装它,但我使用
sudo apt get install安装了其他模块…
使用apt get on Debian安装scrapy时存在一个已知问题: