Windows 10のBashOnUbuntyでScrapyを学習しようとしています。genspiderコマンドを使用してスパイダー(yelprest)を作成し、スパイダーファイルを作成して別のスパイダー(quotes_spider) (公式チュートリアルhttps://doc.scrapy.org/en/latest/intro/tutorial.htmlに従ってください)。コマンドプロンプトから常に同じコマンドが実行されています
最初のスパイダーはまだテストされていませんが、2番目のスパイダーでチュートリアルを実行しようとしました。実行しようとすると、最初のスパイダーを指すエラーが発生します。また、バージョンのような他の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 >
なぜ私は私が与えたコマンドで同じエラーが発生しているのか分かりません。
を。 IndentationErrorは、yelprest.pyファイルに問題があることを意味します。ファイルは正しくインデントされていますか?タブとスペースを混在させましたか? – Yall
いいえ、ポイントは上記の "scrapy version"コマンドの出力です - 完全に無関係です。私が与えるコマンドについては、私は上記の結果を得ていました。私が与えるすべてのコマンドは、genspiderコマンドで作成した最初のスパイダーを指しています。私はその場所からその特定のクモを取り除きました、そして、私は正常に動作することができます。ドキュメンテーションやフォーラムでは、同じプロジェクトで複数のスパイダーを持つことができるはずです。しかし、私はこの特定の行動についてはっきりしていません。 – Sasi
プロジェクトディレクトリ内でscrapyコマンドを実行すると、ファイルにエラーがあるとクラッシュします。たとえコマンドが関連していなくても。だからこそ私はyelprest.pyにエラーがあると思う。 はい、同じプロジェクトで複数のスパイダーを持つことができます。 – Yall