Eggs Sunny Side Up
본문 바로가기
Web/Crawling

Gmarket 상품정보 수집

by guswn100059 2023. 4. 10.
더보기

find_element() => 동적인 화면(클릭, 검색버튼을 클릭)에서 요소를 불러오는 함수  
soup.select() => 캡쳐된 화면(클릭이 불가)에서 요소를 불러오는 함수

from selenium import webdriver as wb
# 웹 브라우저를 통제하기 위한 라이브러리

from selenium.webdriver.common.by import By
# html 문서에서 태그와 선택자의 위치를 찾기 위한 라이브러리

from selenium.webdriver.common.keys import Keys
# 웹에게 값을 '입력'하기 위한 라이브러리

from bs4 import BeautifulSoup as bs
# 컴퓨터가 이해하기 쉬운 객체로 변환해주는 라이브러리

import pandas as pd
# 수집한 정보를 DataFrame화 하기 위한 라이브러리

import time
# 코딩 중간에 쉬는 시간을 부여해주는 라이브러리

 

Gmarket 상품정보 크롤링

  1. 1 ~ 10위 까지 상품에 하나하나 접근하기(클릭)
  2. 상품명, 상품가격, 카테고리 수집
  3. 반복문을 통해서 1 ~ 10위에 해당하는 데이터를 데이터프레임 형태로 출력

방법1)

driver = wb.Chrome()
driver.get('https://corners.gmarket.co.kr/bestsellers')

goodlist = []
pricelist = []
ctlist = []
rank =[]

for i in range(0, 10) :
    driver.get('https://corners.gmarket.co.kr/bestsellers')
    
    btn = driver.find_element(By.ID, f'itemidx{i+1}')
    btn.click()
    time.sleep(2)
    
    soup = bs(driver.page_source, 'lxml')
    
    good = soup.select('h1.itemtit')
    goodlist.append(good[0].text)

    price = soup.select('strong.price_real')
    pricelist.append(price[0].text)
    
    ct = soup.select('li.on>a')
    ctlist.append(ct[0].text)
    
    rank.append(i+1)
    
driver.close()

dic = {'상품명':goodlist, '가격':pricelist, '카테고리':ctlist}
gmarket = pd.DataFrame(dic, index=rank)
gmarket

 

방법 2)

driver = wb.Chrome()
driver.get('https://corners.gmarket.co.kr/bestsellers')

goodlist = []
pricelist = []
ctlist = []
rank =[]

for i in range(0, 10) :
    
    btn = driver.find_element(By.ID, f'itemidx{i+1}')
    btn.click()
    time.sleep(2)
    
    soup = bs(driver.page_source, 'lxml')
    
    good = soup.select('h1.itemtit')
    goodlist.append(good[0].text)

    price = soup.select('strong.price_real')
    pricelist.append(price[0].text)
    
    ct = soup.select('li.on>a')
    ctlist.append(ct[0].text)
    
    rank.append(i+1)
    
    driver.back()
    
driver.close()

dic = {'상품명':goodlist, '가격':pricelist, '카테고리':ctlist}
gmarket = pd.DataFrame(dic, index=rank)
gmarket

 

결과

 

'Web > Crawling' 카테고리의 다른 글

네이버 이미지 데이터 수집  (0) 2023.04.13
포켓몬 이미지 데이터 수집  (0) 2023.04.12
한솥도시락 data 크롤링  (0) 2023.04.09
selenium 라이브러리  (0) 2023.04.09
웹페이지 데이터 수집  (0) 2023.04.06

댓글