새소식

반응형
유용한 툴

파이썬으로 리뷰 크롤링하는 방법! 네이버, 구글, 쇼핑몰 데이터 수집

  • -
반응형

 

🚀 크롤링이란?

크롤링(Crawling)은 웹사이트에서 자동으로 데이터를 수집하는 기술입니다. 리뷰 크롤링은 소비자 리뷰 데이터를 수집하여 제품 평가, 트렌드 분석, 고객 의견 파악 등에 활용할 수 있습니다.

크롤링을 통해 얻을 수 있는 데이터:

  • 네이버 블로그/카페 리뷰 (제품 후기, 서비스 평가)
  • 구글 리뷰 (음식점, 상점, 앱 리뷰 등)
  • 쇼핑몰 리뷰 (쿠팡, 11번가, G마켓 등)

⚠️ 주의: 크롤링 시 서비스 이용 약관을 확인하고, 로봇 배제 표준(robots.txt)을 준수해야 합니다.


🛠 리뷰 크롤링을 위한 필수 라이브러리

파이썬으로 리뷰를 크롤링하려면 아래 라이브러리가 필요합니다:

pip install requests beautifulsoup4 selenium pandas
  • requests : 웹 페이지 요청 및 응답 수집
  • BeautifulSoup : HTML 파싱 및 데이터 추출
  • Selenium : 동적 웹사이트 크롤링 (JS 렌더링 대응)
  • pandas : 데이터 정리 및 분석

🔍 네이버 리뷰 크롤링하기

네이버 블로그/카페 리뷰는 BeautifulSoup을 이용하여 크롤링할 수 있습니다.

import requests
from bs4 import BeautifulSoup

url = "https://search.naver.com/search.naver?query=제품명+리뷰"
headers = {"User-Agent": "Mozilla/5.0"}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, "html.parser")

reviews = soup.find_all("div", class_="review_content")
for review in reviews:
    print(review.text.strip())

📌 주의: 네이버는 robots.txt에서 크롤링을 제한할 수 있으므로 API 사용을 고려해야 합니다.


🌍 구글 리뷰 크롤링하기 (Selenium 활용)

구글 리뷰는 동적 렌더링되므로 Selenium을 사용해야 합니다.

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

# 크롬 드라이버 실행
driver = webdriver.Chrome()
driver.get("https://www.google.com/maps/place/장소명")
time.sleep(3)

# 리뷰 수집
reviews = driver.find_elements(By.CLASS_NAME, "review-text")
for review in reviews:
    print(review.text)

driver.quit()

📌 팁: 리뷰가 많을 경우 스크롤을 내리는 자동화 코드가 필요합니다.


🛒 쇼핑몰(쿠팡) 리뷰 크롤링하기

쿠팡은 API를 제공하지 않으므로 requestsBeautifulSoup을 활용합니다.

import requests
from bs4 import BeautifulSoup

url = "https://www.coupang.com/vp/products/상품번호?itemId=아이템번호"
headers = {"User-Agent": "Mozilla/5.0"}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, "html.parser")

reviews = soup.find_all("span", class_="sdp-review__article__list__review__content")
for review in reviews:
    print(review.text.strip())

⚠️ 쿠팡은 크롤링을 강하게 제한하므로 조심해야 합니다.


✅ 크롤링할 때 주의할 점

  1. robots.txt 확인: 크롤링 가능 여부를 먼저 확인하세요.
  2. 서비스 이용 약관 준수: 불법적인 크롤링은 법적 문제가 될 수 있습니다.
  3. Rate Limiting 적용: 과도한 요청은 IP 차단을 유발할 수 있습니다.
  4. API 활용 고려: 네이버, 구글, 쇼핑몰의 공식 API를 사용하는 것이 안전합니다.

🎯 결론

이 글에서는 네이버, 구글, 쇼핑몰 리뷰를 파이썬으로 크롤링하는 방법을 소개했습니다. 크롤링을 활용하면 리뷰 데이터를 효과적으로 수집하여 마케팅 분석, 소비자 트렌드 연구, 상품 개선 등에 활용할 수 있습니다.

하지만 크롤링 윤리와 법적 이슈를 준수하며 사용하는 것이 중요합니다. 크롤링이 어렵다면 공식 API를 이용하는 것도 좋은 방법입니다.

네이버 리뷰 메인 크롤링 코드

    try:
        iterations = int(iteration_entry.get())
        for _ in range(iterations):
            for page_num in range(2, 13):  # 2부터 13까지 반복
                try:
                    review_elements = driver.find_elements(By.XPATH, '//*[@id="REVIEW"]/div/div[3]/div[2]/ul/li/div/div/div')
                    for review in review_elements:
                        try:
                            rating = review.find_element(By.XPATH, './/div[1]/div/div[1]/div[1]/div[2]/div[1]/em').text
                            date = review.find_element(By.XPATH, './/div[1]/div/div[1]/div[1]/div[2]/div[2]/span').text
                            product = review.find_element(By.XPATH, './/div[1]/div/div[1]/div[1]/div[2]/div[3]').text
                            review1 = review.find_element(By.XPATH, './/div[1]/div/div[1]/div[1]/div[2]/div[3]/dl').text
                            review2 = review.find_element(By.XPATH, './div[1]/div/div[1]/div[2]/div[1]').text
                            reviews.append([rating, date, product, review1, review2])
                        except Exception:
                            continue
                    update_table()
                    next_page_button = driver.find_element(By.XPATH, f'//*[@id="REVIEW"]/div/div[3]/div[2]/div/div/a[{page_num}]')
                    driver.execute_script("arguments[0].click();", next_page_button)
                    time.sleep(2)
                except Exception as e:
                    messagebox.showerror("Error", f"페이지 {page_num} 이동 중 오류 발생: {str(e)}")
                    break
    except Exception as e:
        messagebox.showerror("Error", f"리뷰 추출 중 오류 발생: {str(e)}")

 

리뷰를 크롤링 하는 이유는 브랜딩을 위해서 아주 중요한 역할을 합니다.

수집된 리뷰로 고객의 니즈를 분석이 가능하고, 유사한 제품을 개발할때 단점은 보완하고, 장점은 더욱 부각시킬수 있습니다.

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.