Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Scrapy вызывает паука, отличного от указанного в командной строке

Автор вопроса: Malik A. RumiОтветов: 1
(P6Svenv)malikarumi@Tetuoan2:~/Projects/P6/P6Svenv/test2/test2/spiders$     scrapy crawl zomd
Traceback (most recent call last):
File "/usr/bin/scrapy", line 9, in <module>
load_entry_point('Scrapy==1.0.3.post6-g2d688cd', 'console_scripts', 'scrapy')()
File "/usr/lib/pymodules/python2.7/scrapy/cmdline.py", line 142, in execute
cmd.crawler_process = CrawlerProcess(settings)
File "/usr/lib/pymodules/python2.7/scrapy/crawler.py", line 209, in __init__
super(CrawlerProcess, self).__init__(settings)
File "/usr/lib/pymodules/python2.7/scrapy/crawler.py", line 115, in __init__
self.spider_loader = _get_spider_loader(settings)
File "/usr/lib/pymodules/python2.7/scrapy/crawler.py", line 296, in _get_spider_loader
return loader_cls.from_settings(settings.frozencopy())
File "/usr/lib/pymodules/python2.7/scrapy/spiderloader.py", line 30, in from_settings
return cls(settings)
File "/usr/lib/pymodules/python2.7/scrapy/spiderloader.py", line 21, in __init__
for module in walk_modules(name):
File "/usr/lib/pymodules/python2.7/scrapy/utils/misc.py", line 71, in walk_modules
submod = import_module(fullpath)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/home/malikarumi/Projects/P6/P6Svenv/test2/test2/spiders/t350_crawl.py", line 36
def parse_item(self, response):
                              ^
IndentationError: unindent does not match any outer indentation level

Вы видите это? Scrapy даже не вызывает паука, который я указал в командной строке!

Я вижу это супер в трассировке, но все мои t350 являются производными от CrawlSpider. zomd является подклассом scrapy.Spider. Почему это происходит и что мне с этим делать?

  • @LearnAWK: да, верно, и в этом случае "zomd" находится в zomd.py, а t350_crawl - в t350_crawl.py, поэтому мой вопрос остается без ответа. Однако в Django есть команда, я думаю, она называется "проверить", которая просматривает весь код проекта в поисках ошибок; Интересно, есть ли аналогичная функция в Scrapy? Malik A. Rumi 20.10.2015

scrapy-spider

Ответы

Ответ 1 · LearnAWK

Имя паука не совпадает с именем файла. Он определяется в файле паука второй строкой ниже:

class CAPjobSpider(Spider):
    name = "spider_name"

Вышеуказанное имя паука - "spider_name", даже если файл может быть "New_York.py".

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы