AI를 활용한 재밌는 것들을 개발합니다

2024년 7월 9일 화요일

2. ChatGPT로 뽐뿌 게시글에서 댓글만 읽어 오는 Python 코드 만들기

24년 7월 7일 저녁 계속


ChatGPT 능력이 놀랍다. 이제 전혀 배경지식이 없는 웹페이지에서 댓글을 읽어오는 크롤링 기술을 배경지식 하나 없이 ChatGPT만으로 구현해보겠다.


질문 1 : 

"https://www.ppomppu.co.kr/zboard/view.php?id=ppomppu&page=1&divpage=93&hotlist_flag=999&no=557488"

위 URL의 게시글에 달린 댓글을 읽어오는 Python 코드 알려줘



헐~ 순식간에 코드를 작성해준다. 해당 코드를 돌려보니 원하는 결과는 아니라 몇 번 더 질문을 했다.

질문 2 :

위 코드를 사용해도 안되는데. URL HTML 코드를 보니까 아래와 같은 코드 안에 있는 "9900원이 딱이야"를 읽어오면 돼 

 ...

 <div id="commentContent_14491780" class="over_hide link-point mid-text-area"> <p>9900원이 딱이야</p> </div> 

...

질문 3 : 

오 최고야!! 

근데 출력된 결과 TEXT가 다 깨져서 나오는데? 한글이라 그런거 같아. 한글 출력 잘 되게 해줘 

 ...
output
Comment 1: ??? : �� ���ڴ� �� ��Ÿ���Դϴ�!!
Comment 2: �������ε�
Comment 3: ȭ���� �ϳ�
Comment 4: ���̰� �����. �����ı� �о����
Comment 5: �ڿ����ڵ��� ���� �˰ھ��..ȸ�簡 �����ѰŸ�..���ع�� û�� ���ϳ�..
Comment 6: �¸����̽�.����
Comment 7: �������� �Կ� �� �ٳ׿�
Comment 8: 9900���� ���̾�
... 

질문 4 : 

안돼, 아래와 같이 나와

Comment 1: ??? : �� ���ڴ� �� ��Ÿ���Դϴ�!!
Comment 2: �������ε�
Comment 3: ȭ���� �ϳ�
Comment 4: ���̰� �����. �����ı� �о����
Comment 5: �ڿ����ڵ��� ���� �˰ھ��..ȸ�簡 �����ѰŸ�..���ع�� û�� ���ϳ�..
Comment 6: �¸����̽�.����
Comment 7: �������� �Կ� �� �ٳ׿�
Comment 8: 9900���� ���̾�

질문 5 :

정말 멋져! 

근데 아래와 같은 경우는 위 한줄 "여름용인데"만 읽어와, 아래 줄 "덥겠네요" 도 읽어오게 바꿔줘 

 ...
<div id="commentContent_14491747" class="over_hide link-point mid-text-area">
<p>여름용인데&nbsp;</p>
<p>덥겠네요...</p>
</div>
...

최종적으로 아래 Python 코드를 완성했다. 내가 코딩한 게 하나도 없고, 오직 말로만... ChatGPT에게 말로만 시켜서 코드를 완성한 것이다... 아.. Python 문법 하나도 모르는데.. 크롤링도 어떻게 하는지 하나도 모르는데... 

import requests
from bs4 import BeautifulSoup

def get_comments(url):
    # 웹 페이지 요청
    response = requests.get(url)
   
    if response.status_code != 200:
        print("Failed to retrieve the page")
        return []
   
    # 페이지 파싱, 인코딩을 명시적으로 설정
    soup = BeautifulSoup(response.content, 'html.parser', from_encoding='utf-8')
   
    # 댓글을 포함하는 요소 찾기
    comments_section = soup.find_all('div', class_='mid-text-area')
   
    comments = []
    for comment_div in comments_section:
        # <div> 태그 내의 모든 텍스트 추출
        text = comment_div.get_text(separator=" ", strip=True)
        comments.append(text)
   
    return comments

# 사용 예시
url = "https://www.ppomppu.co.kr/zboard/view.php?id=ppomppu&page=1&divpage=93&hotlist_flag=999&no=557488"
comments = get_comments(url)
for i, comment in enumerate(comments, 1):
    print(f"Comment {i}: {comment}")

실행 결과

Comment 1: 이승만이 좋아할 스타일이네요
Comment 2: ??? : 이 모자는 내 스타일입니다!!
Comment 3: 영원아웃도어는 영원히 아웃
Comment 4: 여름용인데 덥겠네요...
Comment 5: 화생방 하나|
Comment 6: 깊이가 깊대요. 착용후기 읽어보세요
Comment 7: 자영업자들이 무슨 죄겠어요..회사가 지랄한거를..손해배상 청구 안하나..
Comment 8: 추천인 두 분 닉이 어질어질 하네요.
Comment 9: 어휴 런승만 스타일이네
Comment 10: 승만페이스.ㅎㅎ
Comment 11: ㅋㅋㅋㅋ 입에 잘 붙네요
Comment 12: 찰떡궁합..ㅎㅎㅎ
Comment 13: ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
Comment 14: 9900원이 딱이야

댓글 없음:

댓글 쓰기

가장 많이 본 글