인프런 커뮤니티 질문&답변
ori_price와 dis_price 대체문제
작성
·
172
0
def parse_main_category(self, response):
print('Parse_main_category', response.meta['maincategory_name'])
best_items = response.css('div.best-list')
for index, item in enumerate(best_items[1].css('li')):
title = item.css('a.itemname::text').get()
ori_price = item.css('div.o-price::text').get()
dis_price = item.css('div.s-price strong span span::text').get()
dis_percent = item.css('div.s-price em::text').get()
if ori_price == None:
ori_price = dis_price
ori_price = ori_price.replace(',', '').replace('원', '')
dis_price = dis_price.replace(',', '').replace('원', '')
if dis_percent == None:
dis_percent = '0%'
print(title, ori_price, dis_price, dis_percent)
선생님 다음과 같이 코드를 입력하면
[디키즈](광주신세계)디키즈 여름이월특가상품 (DMQ2UTST) 15200 15200 20%
매니몰/M-3XL 남여공용/맨투맨/기모후드집업 12900 12900 70%
[미센스]봄 시즌오프 ~92%세일 + 최대20%쿠폰 14900 14900 59%
이런 식으로 ori_price와 dis_price의 가격차이가 나질 않는데 어떻게 해야 해결할 수 있을지 궁금합니다.
답변 1
0
잔재미코딩 DaveLee
지식공유자
안녕하세요. 일단 알려주셔서 감사합니다.!
최근에 또 해당 사이트의 관련 태그가 조금 바꼈더라구요.
그래서 기존 코드에서는 ori_price 가 가격을 가져올 수 없어서, None 이되고, 바로 다음 코드에 걸려서, ori_price와 dis_price가 동일하게 되었습니다.
if ori_price == None:
ori_price = dis_price
ori_price를 다음과 같이 수정하면 정상 동작함을 확인했습니다.
ori_price = item.css('div.o-price span span::text').get()
위와 같이 gmarket_category_all.py 파일을 수정해서, 다음과 같이 실행하면 정상동작하도록 테스트 코드도 관련 영상에 금일중에 바로 재업로드하겠습니다. 아무쪼록 도움이 많이 되시면 좋겠습니다.!
scrapy crawl gmarket_category_all -o gmarket.csv -t csv





