728x90
반응형
오늘은 지마켓의 베스트 100 > 베스트 > 패션의류 카테고리의 상품명, 가격, 할인율 100개를 크롤링하는 예제 소스를 작성해 보도록 하겠습니다. 해당 페이지의 크롤링에서는 한번 크롤링한 데이터를 리스트에 담아 다시 크롤링하는 방법을 사용해야 합니다.
위의 소스보기 화면을 보면 div 태그의 class 속성 중에 best-list 가 2개가 존재하는 것을 알 수 있다. 이로 인해 상품명을 크롬 개발자 도구에서 CSS Selector를 이용하여 상품명을 크롤링을 할 수가 없습니다. 아래 code에서 best-list class를 모두 가져와서 그중 두 번째 class를 새로운 변수에 저장하고 bestitem 변수에 상품명이 있는 태그를 다시 저장합니다.
import requests
from bs4 import BeautifulSoup
res = requests.get('http://corners.gmarket.co.kr/Bestsellers?viewType=G&groupCode=G01')
soup = BeautifulSoup(res.content, 'html.parser')
product_name = soup.select('div.best-list')
# div 태그 중 class 가 best-list 인 것을 모두 출력.
product_names = product_name[1]
# 크롤링한 best-list class 중 두번째 class를 product_names 변수에 저장한다.
# 상품명, 가격이 존재하는 best-list class가 index 두번째이다.
bestitem = product_names.select('ul > li')
for index, item in enumerate(bestitem):
title1 = item.select_one('a.itemname')
# 상품명 추출
price1 = item.select_one('div.s-price')
# 가격, 할인율 추출
print(str(index+1)+'.', title1.get_text(), price1.get_text())
# index 변수를 통해 크롤링한 상품명 카운팅
# index 변수가 int type이므로 str type으로 변경 후 특수문자 '.' 과 결합하여 출력.
728x90
반응형
'Coding Study > Python' 카테고리의 다른 글
G마켓 - 베스트 카테고리 & 상품상세 공급사 정보 크롤링하기 (1) | 2020.11.26 |
---|---|
네이버 쇼핑 특정 카테고리 인기상품 Top 100 크롤링해서 엑셀파일에 저장하기 (0) | 2020.11.21 |
Python - 네이버 Open API 를 이용해서 특정 키워드 뉴스 10개 가져오기 (0) | 2020.11.19 |
파이썬 기초를 위해 어떤 강의를 들어야 할까? (0) | 2020.05.24 |
Python - Mysql 접속하기 / Query 구문 실행하기 (0) | 2020.03.16 |