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 >
내가 제공하는 명령에 대해 동일한 오류가 나타나는 이유를 알지 못합니다.
그것은 파이썬 오류로 보인다. IndentationError는 yelprest.py 파일에 문제가 있음을 의미합니다. 파일이 정확하게 들여 쓰기되어 있습니까? 탭과 스페이스를 섞어 봤어? – Yall
아니요, 요점은 위의 "치료 버전"명령의 출력입니다 - 완전히 관련이 없습니다. 내가주는 모든 명령에 대해 위의 결과를 얻었습니다. 모든 명령은 genspider 명령으로 만든 첫 번째 거미를 가리 킵니다. 그 위치에서 그 거미를 옮겼고 정상적으로 달릴 수 있습니다. 나는 문서/포럼에서 동일한 프로젝트에서 여러 개의 거미를 가질 수 있어야한다고 봅니다. 그러나 나는이 특정한 행동에 대해 명확하지 않다. – Sasi
프로젝트 디렉토리에서 scrapy 명령을 실행하면 파일에 오류가있는 경우 충돌이 발생합니다. 명령이 관련이없는 경우에도. 그래서 나는 그 오류가 yelprest.py에 있다고 생각한다. 예, 동일한 프로젝트에서 여러 개의 거미를 가질 수 있습니다. – Yall