파이썬으로 뉴스 모니터링 자동화하기

안녕하세요! AI 도구들을 적극적으로 활용하여 그 어느때보다 일을 많이하고 있는 황인준입니다.

저는 얼마전 아는 지인에게 얼마 전, 뉴스 모니터링 자동화 요청을 받았습니다. 이 프로젝트를 통해 파이썬을 활용한 뉴스 크롤링 자동화 과정을 공유하고자 합니다.

프로젝트 시작: 요구 사항 파악과 미팅

처음 프로젝트를 시작할 때, 담당자들과의 미팅을 통해 주요 핵심 과제와 현재 작업 환경에 대해 상세히 논의했습니다. 이를 통해 어떤 종류의 뉴스를 모니터링해야 하는지, 어떤 빈도로 데이터를 수집해야 하는지, 그리고 어떤 환경에서 시스템이 운영될지를 명확히 이해할 수 있었습니다.

데일리로 특정 키워드에 대한 뉴스 기사들을 데일리하게 수집하는 일이였고 단순 수집 뿐만 아니라, 번역 및 기사에 대한 몇가지 판단(긍정, 부정 / 단순 언급 여부 판단)을 해야하는 일이였습니다.

이 과정에서 작성된 회의록은 Claude 를 통해서 개발기획서로 만들었습니다.

한국어 텍스트가 있는 검은 화면

기술 스택 선정

본격적으로 들어가기 앞서 가장 핵심이였던 뉴스 정보를 가져오는 방법을 결정해야 했습니다. Naver SearchAPI와 파이썬 셀레니움(Selenium) 두가지였습니다.

기본적으로 제공되는 API를 활용하는 것이 가장 효율적이라 생각했지만, 네이버에서 제공하는 데이터가 한정적이어서 어쩔 수 없이 셀레니움을 선택하게 되었습니다.

한국어 단어와 그 의미 목록
한국 ETF 뉴스 - 스크린샷

언론사 정보를 별도로 제공해주지 않았습니다.....

셀레니움은 브라우저를 자동으로 제어할 수 있어, 동적인 웹 페이지에서도 필요한 데이터를 효과적으로 수집할수 있습니다

하지만 셀레니움을 선택함으로써 사용자에게 제공할 수 있는 인터페이스가 필요해졌습니다.

구현

사용 기술 스택

  • 사용 언어: Python

  • 주요 라이브러리: Selenium, PySide6, pandas

  • IDE: CursorAI

  • AI 도구: ChatGPT o1 Preview, Claude, V0

구현단계

구현은 아래와 같이 5단계로 나눠서 작업했습니다

  1. PySide6 를 활용하여 GUI 프로그램 구현

  2. 인터페이스에 간단한 검색창과 검색 버튼을 네이버 뉴스 검색 처리

  3. 검색 결과 확인 후 검색 조건 추가(제외할 검색어, 검색 기간 , sorting 처리)

  4. 검색 결과 CSV 다운로드

  5. 테스트

기획 단계에서 별도의 화면 기획서가 없었기 때문에 UI 프로토타입을 를 먼저 그려서 완성된 모습을 먼저 그려봤습니다.

이 과정에서 Vercel에서 만든 v0 라는 AI tool 이 도움이 많이 됐습니다.

이미지 첨부도 되어 너무 쉽고 간단하고 예쁘게 UI를 만들어줬습니다.

컴퓨터 화면에 한국어 스크린샷

https://v0.dev/

이렇게 React로 먼저 UI의 완성된 모습을 구현했습니다. 검색창, 결과 목록, 필터링 옵션 등 필요한 모든 요소를 시각화하고 이렇게 만든 프로토타입을 기반으로 Python GUI로 변환하는 작업을 진행했습니다.

생각보다 PySide6 를 사용해서 원하는대로 구현하기는 어려웠지만 1차적으로 필요했던 기능은 다 추가된 모습입니다.

사실은 이제 크롤링은 너무 흔하기도 하고 이 사례에서 진짜로 몇가지 공유드리고 싶은 내용은 다음과 같습니다!

  1. 개빌자, 비개발자 격차 축소

    1. 파이썬 개발자보다 GPT가 더 잘함

  2. 버그와 에러 메시지 두려워하지 않기

    1. 버그나 에러 나면 에러 메시지 GPT한테 던지기

    2. GPT한테 로그 찍어달라고 하기

  3. 상황에 맞는 AI 도구 활용하기

    1. ChatGPT o1 preview : 전체적인 플로우 및 어려운 일 시키기

    2. claude : 대충 막 시킬 일

    3. v0 : UI 짜달라하기

  4. 목적이 있는 질문하기

    1. 물어보는 것도 구체적으로 봐야함

    2. 뭘 모르는지 GPT랑 이야기 하고 질문하기

  5. 라이브러리 활용하기

    1. 앵간한건 누가 만들어놓음

    2. 이상한 곳에 시간 쓰지 말기

  6. 중간중간 리팩토링하기

    1. 너무 길어지면 사람도 힘들고 AI 도 힘들어함

  7. GIT 활용해보기

    1. 무조건 AI 가 짜준 코드 붙여넣으면 되던게 안됨

    2. 어디가 바뀐지는 알고 붙여넣기

  8. 단계별로 나눠서 구현하기

    1. 완성된 모습 또는 기대했던 모습을 설정하고

    2. 작은 부분부터 하나씩 구현하기

  9. cursor 최고

    1. 최고

이상입니다! 사실 이 글을 쓰면서도 AI의 도움을 많이 받았는데 글 쓰는 것처럼 코드 작성도 여러가지 비슷하다고 생각합니다. 제가 했던 플로우대로 단계적으로 나눠서 AI랑 씨름을 하다보면 언젠가 해결될거라고 생각합니다.

그리고 마지막으로, 역시 CursorAI 최고...👍

9
3개의 답글

👉 이 게시글도 읽어보세요