킵고잉
🔬 임팩트 찐친

[문과생도AI] 문과생도 필요한 프로그램을 개발할 수 있다.. 이말이지?

#문과생도 AI 10기

안녕하세요! 킵고잉입니다.

문과생도 AI로 5주만에 서비스를 개발할 수 있다?!

라는 문장에 이끌려 홀린듯이 부트캠프를 결제해버렸습니다.

1주차에 기본코딩 과제는 끝냈으니, 남은 기간동안 제가 만들고 싶은 프로그램을

과연 GPT의 도움을 받아 만들어 낼 수 있을지..! 도전해보고 결과를 공유드릴까 합니다.


1. 프로젝트 선정

저는 주로 쿠팡이라는 플랫폼에서 물건을 파는 이커머스 셀러입니다. 새로운 시장에 도전할때, 가장 중요한 업무는 기존 시장 리더들의 장단점을 파악하는 것인데요!!

이 때 필요한 것이 바로 그 시장의 고객 리뷰를 쭉 살펴보는 것입니다.

그래서 저의 이번 프로젝트는[쿠팡 상품 리뷰 크롤러 개발하기]로 정했습니다.

쉽지는 않겠지만, 결과와 상관없이 많은 것을 배울 수 있을 것이라 믿고 있습니다!


2. 해줘 개발의 시작 (GPT야~ 코딩해줘~ 디버깅해줘~)

User
안녕! 나는 파이썬으로 프로그램을 하나 만들고싶어.
구동방식은 
1. 사용자가 쿠팡의 특정상품URL을 입력한다.
또는
키워드를 입력하면 해당 키워드의 검색결과에서 일부 상품을 분류해서 선택한다.

2. 해당 상품의 리뷰를 크롤링해서 엑셀에 정리해서 보여준다. 

이렇게 하고 싶은데 어떤식으로 진행하면 될까?


라고 물어보니, 우선 기획부터 해주더라구요!

GPT
파이썬으로 쿠팡 상품 리뷰를 크롤링해서 엑셀 파일로 저장하는 프로그램을 만드는 과정은 크게 다음 단계로 나눌 수 있습니다. 아래는 대략적인 개발 계획과 코드 구성 방안입니다.

1. 필요한 라이브러리 설치
이 프로젝트를 위해 필요한 파이썬 라이브러리를 설치합니다. 주로 사용될 라이브러리는 requests (웹 페이지 요청), BeautifulSoup (HTML 파싱), pandas (데이터 처리 및 엑셀 파일 저장) 입니다.

Copy code
pip install requests beautifulsoup4 pandas
2. 사용자 입력 처리
사용자로부터 쿠팡 상품 URL 또는 검색 키워드를 입력받는 부분을 구현합니다.

3. 쿠팡 웹 페이지 크롤링
URL을 통한 직접 접근: 입력받은 URL로부터 상품 리뷰 페이지로 이동하는 로직을 구현합니다.
키워드 검색: 입력받은 키워드로 쿠팡에서 검색을 수행하고, 결과로 나온 상품들 중 일부를 선택하여 리뷰 페이지로 이동하는 로직을 구현합니다.
4. 리뷰 데이터 추출
BeautifulSoup을 사용하여 리뷰 페이지의 HTML에서 리뷰 데이터를 추출합니다. 이때, 리뷰 작성자, 별점, 리뷰 내용 등 필요한 정보를 추출합니다.

(이하 생략..)


잘 이해는 안되었지만… 그래도 열심히 설명을 읽으면서 대략적으로 구조를 이해했고,

해줘 개발을 시작했습니다.

User
좋아. 방금 계획대로 코드를 짜서 보여줘. 웹 크롤링을 할때는 selenium을 활용할거야.

(어디서 주워들은건 있어서, 셀레니움을 이용해 달라고 했어요)

GPT
방금의 계획에 따라 쿠팡 상품 리뷰를 크롤링하여 엑셀 파일로 저장하는 전체 프로세스를 구현해보겠습니다. 이 과정에서 selenium을 사용하여 웹 크롤링을 수행하고, pandas를 이용해 데이터를 엑셀 파일로 저장하겠습니다.

먼저, 필요한 라이브러리를 설치합니다. 아래의 명령을 통해 selenium, pandas, openpyxl(엑셀 파일을 생성하기 위한 라이브러리)을 설치해 주세요.

Copy code
pip install selenium pandas openpyxl
웹드라이버 설정을 위해 ChromeDriver 또는 Firefox 드라이버를 다운로드하고, 해당 드라이버의 경로를 지정해야 합니다. 이 예제에서는 Chrome을 사용합니다.

코드 구현
1. 사용자 입력 처리
python
Copy code
import re
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import pandas as pd
import time

def get_user_input():
    print("쿠팡 상품의 URL 또는 검색 키워드를 입력하세요:")
    user_input = input("> ")
    url_pattern = re.compile(r'https?://www.coupang.com/.*')
    if url_pattern.match(user_input):
        return {'type': 'url', 'value': user_input}
    else:
        return {'type': 'keyword', 'value': user_input}
2. 웹 페이지 크롤링 및 리뷰 데이터 추출
python
Copy code
def crawl_reviews(input_data):
    # ChromeDriver의 경로를 지정하세요.
    driver_path = 'YOUR_CHROMEDRIVER_PATH_HERE'
    driver = webdriver.Chrome(driver_path)
    
    reviews = []
    if input_data['type'] == 'url':
        driver.get(input_data['value'])
        # URL을 통해 직접 접근하는 경우의 처리 로직
    elif input_data['type'] == 'keyword':
        # 쿠팡 검색 페이지로 이동
        driver.get('https://www.coupang.com/np/search?q=' + input_data['value'])
        # 검색 결과 처리 로직

    # 여기에 리뷰 데이터를 추출하는 로직을 추가하세요.
    # 예제 코드는 이 부분을 구체적으로 구현하지 않습니다.

    driver.close()
    return reviews
3. 데이터 엑셀 파일로 저장
python
Copy code
def save_to_excel(reviews):
    df = pd.DataFrame(reviews)
    df.to_excel("coupang_reviews.xlsx", index=False)
메인 로직
python
Copy code
if __name__ == "__main__":
    user_input = get_user_input()
    reviews = crawl_reviews(user_input)
    if reviews:
        save_to_excel(reviews)
        print("리뷰 데이터가 성공적으로 저장되었습니다.")
    else:
        print("리뷰 데이터를 추출하지 못했습니다.")
이 코드는 크롬 드라이버의 경로 설정, 웹 페이지에 따른 동적 요소 처리, 실제 리뷰 데이터 추출 등 추가적인 구현이 필요합니다. 쿠팡 웹사이트의 구조와 JavaScript 로딩 방식에 따라, selenium을 사용해 동적으로 로딩되는 리뷰 데이터에 접근하고 이를 추출해야 합니다.

동적 웹페이지의 특정 요소가 로드될 때까지 대기하거나, 스크롤 다운을 구현하여 더 많은 리뷰 데이터에 접근하는 등의 로직이 추가적으로 필요할 수 있습니다.


그리고 이 이후에는 아주 지루하고도 길었던.. 디버깅의 과정이 있었구요.



3.결과 및 배운점

결과적으로는 크롤링할때, 리뷰가 있는부분을 클래스명으로 특정해서 접근해야 하는데, 해당 클래스명에 오류가 나는것인지.. 아니면 제가 이해못한 오류가 있는것인지… 더이상 진행이 불가능 했습니다.

다음주차에는 좀 더 공부를 해서 GPT에게 일을 잘 시켜봐야겠어요.


이번 과제에서 배운점은 모르는 내용이 나오면 GPT에게 “중학생 수준으로 설명해”달라고 하면 정말 이해하기쉽게 설명해준다는 점이었습니다.

GPT
ChromeDriver는 Chrome 브라우저를 자동으로 제어할 수 있게 해주는 프로그램입니다. 예를 들어, 웹사이트를 열거나 클릭, 스크롤 같은 동작을 자동으로 할 때 사용해요. Selenium과 같은 도구가 이 ChromeDriver를 사용해서 웹 브라우징을 자동화합니다. 이제 ChromeDriver 경로 설정에 대해 중학생도 이해할 수 있게 설명해 드릴게요!

ChromeDriver 경로 설정이란?
컴퓨터에서 프로그램을 실행시키려면, 컴퓨터가 그 프로그램이 어디에 있는지 알아야 해요. 마치 친구 집에 가려면 그 집 주소를 알아야 가듯이요. ChromeDriver도 마찬가지로, Selenium이 이를 사용하려면, ChromeDriver가 어디에 저장되어 있는지 알려줘야 해요. 이것이 바로 "경로 설정"입니다.

ChromeDriver 설치와 경로 찾기
ChromeDriver 다운로드: 먼저, ChromeDriver를 다운로드 받아야 해요. 구글에 "ChromeDriver"라고 검색하면, 공식 웹사이트 링크를 찾을 수 있어요. 여기서 사용하는 Chrome 브라우저와 같은 버전의 ChromeDriver를 다운로드 받으세요.

압축 해제: 다운로드 받은 파일은 보통 압축 파일(zip) 형태일 거예요. 이 파일을 원하는 위치에 압축 해제하세요. 예를 들어, 바탕화면에 폴더를 만들어 그 안에 넣을 수도 있어요.

경로 찾기: 압축을 해제한 폴더로 들어가서, ChromeDriver 실행 파일을 볼 수 있을 거예요. 이 파일을 마우스 오른쪽 버튼으로 클릭하고, '속성'을 선택하면 파일의 위치(경로)를 볼 수 있어요. Windows에서는 이 경로가 보통 C:\Users\[사용자 이름]\Desktop\chromedriver 같은 형태를 띠고, Mac이나 Linux에서는 /Users/[사용자 이름]/Desktop/chromedriver 처럼 생겼을 거예요.

Python 코드에서 경로 설정
Python 코드에서 이 경로를 사용해서 Selenium이 ChromeDriver를 사용할 수 있게 해줘야 해요. 예를 들면, 아래와 같이 코드에 경로를 적어줘요.

python
Copy code
from selenium import webdriver

driver_path = '여기에 복사한 경로를 붙여넣으세요'
driver = webdriver.Chrome(driver_path)
만약 C:\Users\John\Desktop\chromedriver에 ChromeDriver가 있다면, 코드는 이렇게 될 거예요.

python
Copy code
driver = webdriver.Chrome('C:\\Users\\John\\Desktop\\chromedriver')
참고로, Windows에서는 경로 내에 \가 두 번(\\) 사용되는 것을 기억하세요. 이렇게 하면, Selenium이 이 경로를 찾아 ChromeDriver를 실행하고, 웹 브라우징을 자동화할 수 있어요! 


앞으로도 GPT에게 중학생 수준의 과외를 받으면서 프로젝트를 완성시키는 날까지 열심히 해보겠습니다.


P.S. 박정기 파트너님 or 개발고수분들 시간 나시면 저의 허접한 대화로그를 보시고 가감없는 조언 부탁드립니다!!!

ChatGPT
8
1개의 답글

👉 이 게시글도 읽어보세요!

📚 AI 활용 사례 더 보기