2015-10-19 11 views
0

PS C: \ Users \ стив \ обучающая> SCRAPY ползать DMOZScrapy DMOZ учебник: _init_() принимает в большинстве 2 аргументов (3 заданных)

Traceback (most recent call last): 

File "c:\python27\scripts\scrapy-script.py", line 9, in <module> 
    load_entry_point('scrapy==1.0.3', 'console_scripts', 'scrapy')() 
File "C:\Python27\lib\site-packages\scrapy-1.0.3-py2.7.egg\scrapy\cmdline.py", 
    cmd.crawler_process = CrawlerProcess(settings) 
File "C:\Python27\lib\site-packages\scrapy-1.0.3-py2.7.egg\scrapy\crawler.py", 
    super(CrawlerProcess, self).__init__(settings) 
File "C:\Python27\lib\site-packages\scrapy-1.0.3-py2.7.egg\scrapy\crawler.py", 
    self.spider_loader = _get_spider_loader(settings) 
File "C:\Python27\lib\site-packages\scrapy-1.0.3-py2.7.egg\scrapy\crawler.py", 
    return loader_cls.from_settings(settings.frozencopy()) 
File "C:\Python27\lib\site-packages\scrapy-1.0.3-py2.7.egg\scrapy\spiderloader. 
    return cls(settings) 
File "C:\Python27\lib\site-packages\scrapy-1.0.3-py2.7.egg\scrapy\spiderloader. 
    for module in walk_modules(name): 
File "C:\Python27\lib\site-packages\scrapy-1.0.3-py2.7.egg\scrapy\utils\misc.py 
    submod = import_module(fullpath) 
File "C:\Python27\lib\importlib\__init__.py", line 37, in import_module 
    __import__(name) 
File "C:\users\steve\tutorial\tutorial\spiders\dmoz.py", line 4, in <module> 
    class dmozspider(spiders): 
TypeError: Error when calling the metaclass bases module.__init__() takes at most 2 arguments (3 given) 

Мой DMOZ паук питон скрипт здесь

from scrapy import spiders 


class dmozspider(spiders): 
    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] + '.html' 
     with open(filename, 'wb') as f: 
      f.write(response.body) 
+0

Добро пожаловать в Stack Overflow Steve! В будущем попробуйте и отформатируйте свой код с четырьмя (4) пробелами для создания черновиков кода (это очень помогает при чтении/форматировании). Кроме того, можете ли вы проверить, что код был исправлен, и что новый отступ отображается точным? – Rejected

ответ

0

Проблема в том, что вы импортируете «пауков» и используете его в качестве базового класса. «пауки» - это пакет, содержащий пауков, а именно класс Spider. Чтобы использовать его, используйте:

from scrapy.spiders import Spider 


class dmozspider(Spider): 
    ... # Rest of your code 
+0

спасибо за помощь. Я не использовал «Паук». это сработало! –