2015-06-07 184 views
4

我剛開始學習scrapy。所以我跟着scrapy documentation。我剛剛寫了該網站中提到的第一隻蜘蛛。AttributeError:'模塊'對象沒有屬性'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://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' 
+0

安裝蟒蛇頭文件有一個已知的問題與使用安裝scrapy易於得到在Debian:http://stackoverflow.com/a/28736998/191442 –

回答

6

from scrapy import Spider 

只導入模塊是不夠的最新的文檔。

解決方案:升級到Scrapy的最新版本,或者閱讀old docs,那件衣服當前安裝的版本

+0

如何找到scrapy版本? –

+0

@AvinashRaj在運行'scrapy'時通常會輸出。你的問題已經包含'2015-06-07 21:53:06 + 0530 [scrapy]信息:Scrapy 0.14.4開始(bot:教程)';-) – Alik

+0

等待,一旦我更新就回復你.. –

-2

也許嘗試:如果你想使用它的您正在使用 Scrapy(0.14.4)班

+0

' ImportError:無法導入名稱Spider' –

+0

檢查'從scrapy導入*'? (儘管它不是pythonic) – kedam6

+0

如果'scrapy.Spider'是一個模塊,並且不在'scrapy'軟件包中導入,你只會產生差異。 –

0

使用sudo pip install scrapy。如果你得到Python.h missing錯誤,然後用sudo apt-get install python-devreference

相關問題