【发布时间】:2025-11-27 14:00:01
【问题描述】:
我正在尝试在 Windows 10 上的 BashOnUbunty 上学习 Scrapy。我使用 genspider 命令创建了一个蜘蛛(yelprest),然后通过创建蜘蛛文件直接创建了另一个蜘蛛(quotes_spider)(遵循官方教程https://doc.scrapy.org/en/latest/intro/tutorial.html )。
第一个蜘蛛尚未测试,但我尝试使用第二个蜘蛛完成教程,当我尝试运行时,我收到指向第一个蜘蛛的错误。另外,当我尝试运行任何其他像版本这样的scrapy命令时,我得到了与上面相同的错误。以下是错误:
(BashEnv) root > scrapy version
Traceback (most recent call last):
File "/mnt/s/BashEnv/bin/scrapy", line 11, in <module>
sys.exit(execute())
File "/mnt/s/BashEnv/local/lib/python2.7/site-packages/scrapy/cmdline.py", line 148, in execute
cmd.crawler_process = CrawlerProcess(settings)
File "/mnt/s/BashEnv/local/lib/python2.7/site-packages/scrapy/crawler.py", line 243, in __init__
super(CrawlerProcess, self).__init__(settings)
File "/mnt/s/BashEnv/local/lib/python2.7/site-packages/scrapy/crawler.py", line 134, in __init__
self.spider_loader = _get_spider_loader(settings)
File "/mnt/s/BashEnv/local/lib/python2.7/site-packages/scrapy/crawler.py", line 330, in _get_spider_loader
return loader_cls.from_settings(settings.frozencopy())
File "/mnt/s/BashEnv/local/lib/python2.7/site-packages/scrapy/spiderloader.py", line 61, in from_settings
return cls(settings)
File "/mnt/s/BashEnv/local/lib/python2.7/site-packages/scrapy/spiderloader.py", line 25, in __init__
self._load_all_spiders()
File "/mnt/s/BashEnv/local/lib/python2.7/site-packages/scrapy/spiderloader.py", line 47, in _load_all_spiders
for module in walk_modules(name):
File "/mnt/s/BashEnv/local/lib/python2.7/site-packages/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 "/mnt/s/BashEnv/Scrapy/Scrapy/spiders/yelprest.py", line 14
rules = (
^
IndentationError: unexpected indent
(BashEnv) root >
我不明白为什么我给出的任何命令都会出现同样的错误。
【问题讨论】:
-
它看起来像一个 python 错误。 IndentationError 表示您的 yelprest.py 文件中有问题。您的文件是否正确缩进?你混合了制表符和空格吗?
-
不,重点是上面是“scrapy version”命令的输出——它完全不相关。对于我给出的任何命令,我都得到了上述结果——我给出的每个命令都指向我用 genspider 命令创建的第一个蜘蛛。我从那个位置移除了那个特定的蜘蛛,我能够正常运行。我从文档/论坛中看到,我应该能够在同一个项目中拥有多个蜘蛛。但我不清楚这种特殊行为。
-
如果您在项目目录中运行 scrapy 命令,如果您的文件包含错误,它将崩溃。即使命令不相关。这就是为什么我认为错误在 yelprest.py 中。是的,你可以在同一个项目中拥有多个蜘蛛。
标签: scrapy scrapy-spider