python 버전 2.7.10 사용. 이 거미를 실행하여 웹 페이지에서 데이터를 추출하려고했습니다. 나는 초기에 데이터를 얻을 수 있었고, scrap을 설정하고 나의 mac 터미널에서 실행할 수 있었다. 하지만 이제는 데이터를 가져올 수 없으며 Traceback 오류가 발생합니다. Scrapy가 실행될 때 Traceback 오류로 인해 크롤링을 성공적으로 실행할 수 없습니다.
import scrapy
class ShopcluesSpider(scrapy.Spider):
name = 'shopclues'
allowed_domains = ['www.shopclues.com/mobiles-featured-store-4g-smartphone.html']
start_urls = ['http://www.shopclues.com/mobiles-featured-store-4g-smartphone.html/']
#custom_settings = {'FEED_URI' : 'tmp/shopclues.csv'}
def parse(self, response):
titles = response.css('img::attr(title)').extract()
#images = response.css('img::attr(data-img)').extract()
prices = response.css('.p_price::text').extract()
discounts = response.css('.prd_discount::text').extract()
for item in zip(titles,prices,discounts):
scraped_info = {
'title' : item[0],
'price' : item[1],
#'image_urls' : [item[2]], #Set's the url for scrapy to download images
'discount' : item[2]
}
yield scraped_info
다음과 같은 오류를 얻었다 : 공유 소스 코드를 기반으로
Traceback (most recent call last):
File "/usr/local/bin/scrapy", line 11, in <module>
sys.exit(execute())
File "/Library/Python/2.7/site-packages/scrapy/cmdline.py", line 148, in execute
cmd.crawler_process = CrawlerProcess(settings)
File "/Library/Python/2.7/site-packages/scrapy/crawler.py", line 243, in __init__
super(CrawlerProcess, self).__init__(settings)
File "/Library/Python/2.7/site-packages/scrapy/crawler.py", line 134, in __init__
self.spider_loader = _get_spider_loader(settings)
File "/Library/Python/2.7/site-packages/scrapy/crawler.py", line 330, in _get_spider_loader
return loader_cls.from_settings(settings.frozencopy())
File "/Library/Python/2.7/site-packages/scrapy/spiderloader.py", line 61, in from_settings
return cls(settings)
File "/Library/Python/2.7/site-packages/scrapy/spiderloader.py", line 25, in __init__
self._load_all_spiders()
File "/Library/Python/2.7/site-packages/scrapy/spiderloader.py", line 47, in _load_all_spiders
for module in walk_modules(name):
File "/Library/Python/2.7/site-packages/scrapy/utils/misc.py", line 71, in walk_modules
submod = import_module(fullpath)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/Users/acetonemarketing/Documents/scrapy/ourfirstscraper/ourfirstscraper/spiders/shopclues.py", line 16
for item in zip(titles,prices,discounts):
^
IndentationError: unexpected indent
'IndentationError'는 소스 코드의 형식을 지정하는 것과 관련이 있습니다. 파이썬은 들여 쓰기를하기 위해 들여 쓰기를 사용하여 소스 코드를 구조화합니다. 그러나 코드를 복사하여 붙여 넣을 때 문제가 발생하지 않았습니다. –
@ TomášLinhart 응답에 감사드립니다. 오류가 발생하지 않았으므로이 스파이더를 실행하고있는 사용자 계정과 관련이 있습니까? 내가 scrapy를 설치했을 때 sudo -H pip를 사용하여 치료를해야만했습니다. –
스파이더를 실행하는 사용자 계정과는 아무 관련이 없습니다. 소스 코드에 들여 쓰기가 잘못되었지만 게시 한 내용이 명확하지 않습니다. –