본문 바로가기
코드리뷰/chatGPT(Python)코드

웹 크롤링 실전 - 쿠팡 상품 정보 가져오기

by 디마드 2024. 3. 28.

본견적으로 쿠팡 상품 정보를 수집해 보자. 

 

1. 키워드 검색

keyword = input("KEYWORD : ")

2. 쿠팡 검색 결과 화면 분석하기

크롤링 결과를 잘 활용하기 위해선 화면 분석이 정말 중요하다. 수집해야 할 상품을 솎아내야 한다. 광고 상품이나 이벤트 상품을 걸러야 하는 것이다. 

그러기 위해선 개발자 도구 분석이 필수적이다. 

각 상품은 search-product 클래스에 정의된다. 이 하위에 모든 상품 정보를 포함한다. 

3. 코드 작성하기

아래 코드 차이는 정확한 클래스명을 지정하는 것이다. 첫번째는 search-product 클래스 외 또 다른 클래스가 함께 있어도 찾아진다. 즉, 광고나 이벤트에 이 클래스가 이용된다는 말이다. 반면 두 번째는 search-product 클래스만 가진 태그에서 상품 정보를 추출한다. 

# items = soup.select(".search-product")
items = soup.select("[class=search-product]")  # 정확하게 search-product 클래스인 것만 찾기

상세 상품정보를 출력하고 상품 이미지는 pc에 저장하자. 

for rank, item in enumerate(items[:10],1):
    name = item.select_one(".name")
    price = item.select_one(".price-value")
    link = f"https://www.coupang.com{item.a['href']}"
    image = item.select_one(".search-product-wrap-img")
       
    print(name.text.strip())    
    if price :
        print(f"{price.text} 원")
    print(link)
    # img_url = ""    
    if image.get("data-img-src") :
        img_url = f"https:{image.get('data-img-src')}"
    else:
        img_url = f"https:{image['src']}"
    print(img_url)
    # print(img_url.replace("230x230","500x500"))
   
    res = requests.get(img_url)
    img_name = f"img/{rank}_{name.text.strip()}.jpg"
    with open(img_name,"wb") as file:
        file.write(res.content)
    print()

상품 이미지 정보가 data-img-src 또는 src 속성에 값으로 되어있다. 그런데, 일부 이미지 태그는 data-img-src 없는 것도 있어서 이를 감안한 코드를 작성해야 한다. 

이미지 저장 결과도 확인해 보자. 10개 이미지가 잘 저장되었다. 

반응형

댓글