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

네이버 쇼핑 크롤링 - 핵심 상품정보 추출하기

by 디마드 2024. 4. 6.

웹 크롤로를 통해 네이버 쇼핑 상품을 검색하고 상품의 핵심정보를 추출해 보자. chatgpt 제휴마케팅을 위한 유용한 정보로 사용할 수 있다. 

방법은 앞서 포스팅한 셀레니움을 이용해 상세정보를 추출한다. 간단한 방법으로 정보를 가져올 수 있지만, 오늘 된다고 내일 된다는 보장은 없다. 네이버에서 크롤링 정보 추출을 자주 막기 때문이다. 

지난번에 네이버 쇼핑 정보를 가져오는 코드를 작성했는데, 오늘 해보니 페이지 없음 에러가 나타났다. 네이버에서 조치를 취한 것이다. 처음엔 헤더 정보를 수정해 봤지만 소용이 없었다. 페이지를 한번 우회해 접속하는 방법으로 해결을 하였다. 

url = f"https://search.shopping.naver.com/search/all?query={keyword}"

time.sleep(3)
driver.get(url)

자! 본견적으로 chatgpt에 던져줄 상품 정보를 추출해 보자. 

1. 네이버 쇼핑 분석하기

광고 상품 제외하고 상품 상세정보가 없는 것도 제외한다. 그렇게 하려면 화면 구성을 봐야 한다. 상세정보를 일관되게 보여주는 것은 "브랜드 카탈로그"를 보여주는 경우다. 따라서 웹 크롤링 시 이 클래스를 추출해 값이 있는지 없는지를 판단해 상세 정보를 가져오도록 한다. 

 

 
   product_brand = item.select_one(".product_brand__pj0V0")
 
   
 
    if (product_brand):
        title = item.select_one("[class^=product_title]")    
        price = item.select_one(".price")
        detail_box = item.select_one(".product_detail_box__QjZP8")

상품 정보는 리스트 변수에 담아준다. 

item_info_list = []
item_text = f"{rank}위 : {title.text} {price.text}"                
        if detail_box:
            item_text += f'\n{detail_box.get_text(" ")}'
           
        item_info_list.append(item_text)

2. 출력 결과 확인

3. 랜덤하게 2개 추출하기

총 10개 중 2개 상품을 비교하고 싶다면, 랜덤 모듈을 이용하자.  상품정보가 담겨있는 item_info_list에서 2개를 추출하는 식이다. 

# 랜덤 추출    
items = random.sample(item_info_list,2)
for item in items:
    print(item)
    print()

Next Steps

이제 추출된 정보를 openai api에 던져주면 고객을 혹하게 만드는 판매글을 완성해 줄 것이다. 앞서 프롬프트 포스팅을 참고해 oepnai api로 코딩해 자동화 시스템을 만들어 보려고 한다. 

2024.04.04 - [코드리뷰/chatGPT(Python)코드] - chatgpt 실전 프롬프트 만들기 2 - 이거 빠지면 누더기 글된다.

 

chatgpt 실전 프롬프트 만들기 2 - 이거 빠지면 누더기 글된다.

지난 chatgpt 실전 프롬프트 만들기 1편에 이어 좀 더 놀라운 결과물을 보게 될 것이다. 인공지능 글쓰기가 더 이상 의미 없는 포스팅 글, 재미없고 인공적인 글만 쓰는 게 아니라, 실제 목적을 가

iamgus.tistory.com

 

반응형

댓글