레이블이 n8n자동화인 게시물을 표시합니다. 모든 게시물 표시
레이블이 n8n자동화인 게시물을 표시합니다. 모든 게시물 표시

파이썬과 네이버 API로 시작하는 데이터 자동화 기초

파이썬과 네이버 API로 시작하는 데이터 자동화 기초

marketingtok.kr 독자 여러분, 매일 수많은 뉴스를 직접 검색하고 정리하는 데 지치셨나요? 마케터, 비즈니스 블로거, 데이터 분석가 모두에게 트렌드 파악은 필수적이지만 이를 수동으로 하는 것은 엄청난 시간 낭비입니다.

이번 글에서는 파이썬(Python)의 강력한 라이브러리인 BeautifulSoup네이버 검색 API를 결합하여, 내가 원하는 키워드의 뉴스 데이터를 단 몇 초 만에 자동으로 수집하는 기초 단계를 마스터해 보겠습니다. 이 과정을 이해하고 나면 자동화 시스템을 통해 남들보다 한발 앞선 트렌드 선점과 효율적인 콘텐츠 생산 능력을 얻게 될 것입니다.

1. 환경 구축 및 API 키 발급받기

데이터 수집을 시작하기 전에 파이썬이 데이터를 요청하고 받아올 수 있는 환경을 만들어야 합니다.

필수 라이브러리 설치

파이썬이 깔려 있는 환경(터미널 또는 커맨드 창)에서 아래 명령어를 입력하여 데이터를 주고받고(requests), 가공하며(BeautifulSoup, pandas), 결과를 정제할 도구들을 설치합니다.

Bash
pip install requests beautifulsoup4 pandas lxml

네이버 개발자 센터 API 신청

네이버 오픈 API를 사용하려면 고유의 자격 증명 키가 필요합니다.

  1. 네이버 개발자 센터에 접속하여 로그인합니다.

  2. Application -> 애플리케이션 등록 메뉴로 이동합니다.

  3. 애플리케이션 이름(예: News_Automation)을 입력하고, 사용 API에서 검색을 선택합니다.

  4. 비로그인 오픈 API 서비스 환경에서 웹 설정을 선택한 뒤, 다운로드 URL에는 임의의 주소(예: http://localhost)를 적어줍니다.

  5. 등록이 완료되면 발급되는 Client IDClient Secret 값을 복사하여 안전한 곳에 저장해 둡니다.

2. 네이버 뉴스 검색 API 연동 및 본문 추출 (실전 코드)

준비가 끝났다면 이제 API로 뉴스 목록을 가져온 뒤, BeautifulSoup로 실제 뉴스 본문까지 긁어오는 파이썬 스크립트를 작성할 차례입니다.

Python
import requests
from bs4 import BeautifulSoup
import time
import pandas as pd

# 1. 발급받은 네이버 API 키 입력
CLIENT_ID = "YOUR_NAVER_CLIENT_ID"
CLIENT_SECRET = "YOUR_NAVER_CLIENT_SECRET"

def search_naver_news(query, display_count=3):
    """네이버 API를 통해 특정 키워드의 뉴스 검색 결과를 가져옵니다."""
    url = f"https://openapi.naver.com/v1/search/news.json?query={query}&display={display_count}&sort=sim"
    headers = {
        "X-Naver-Client-Id": CLIENT_ID,
        "X-Naver-Client-Secret": CLIENT_SECRET
    }
    
    response = requests.get(url, headers=headers)
    if response.status_code == 200:
        return response.json().get('items', [])
    else:
        print(f"API 요청 실패 (에러 코드: {response.status_code})")
        return []

def extract_news_content(url):
    """뉴스 원문 링크에 접속하여 본문 텍스트를 추출합니다."""
    try:
        # 봇(Bot)으로 오인받아 차단되는 것을 방지하기 위한 헤더 설정
        headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}
        res = requests.get(url, headers=headers, timeout=5)
        soup = BeautifulSoup(res.text, "html.parser")
        
        # 주요 언론사의 본문 태그 영역 지정 (네이버 뉴스 플랫폼 기준)
        content = soup.find('article') or soup.find('div', id='dic_area') or soup.find('div', id='articleBodyContents')
        
        if content:
            return content.get_text(strip=True)[:800]  # 가독성을 위해 앞 800자만 추출
        return "본문 태그를 찾을 수 없습니다."
    except Exception as e:
        return f"접속 실패 ({str(e)})"

def run_collector(keyword):
    """검색부터 본문 수집, 저장까지의 프로세스를 총괄합니다."""
    print(f"🚀 '{keyword}' 관련 뉴스 데이터 수집을 시작합니다...")
    news_items = search_naver_news(keyword)
    
    collected_data = []
    for item in news_items:
        # API 결과에 포함된 HTML 특수 태그 제거
        clean_title = item['title'].replace("<b>", "").replace("</b>", "").replace("&quot;", '"')
        print(f"🔗 수집 중: {clean_title}")
        
        # 본문 크롤링 실행
        full_content = extract_news_content(item['link'])
        
        collected_data.append({
            "title": clean_title,
            "link": item['link'],
            "content": full_content
        })
        time.sleep(1) # 무리한 요청으로 인한 차단 방지 (디레이 주입)
        
    # 결과 저장
    df = pd.DataFrame(collected_data)
    df.to_csv("naver_news_result.csv", index=False, encoding="utf-8-sig")
    print("✅ 데이터 수집 및 csv 저장 완료!")

if __name__ == "__main__":
    # 원하는 키워드를 넣어 실행하세요
    run_collector("인공지능 비즈니스")

3. 핵심 크롤링 주의사항 및 데이터 활용법

자동화 코드를 완성했더라도 안정적으로 운영하기 위해서는 다음 두 가지 규칙을 반드시 준수해야 합니다.

  • 크롤링 매너와 타임아웃: 웹사이트 서버에 짧은 시간 동안 수백 건의 요청을 보내면 공격 행위로 간주되어 IP가 차단될 수 있습니다. 코드 내 time.sleep(1)과 같이 요청 사이에 적절한 공백을 두고, timeout=5 설정을 통해 먹통이 된 사이트에서 무한 대기하는 현상을 방지해야 합니다.

  • 뉴스 저작권 보호: 수집한 뉴스 본문을 그대로 자신의 블로그나 웹사이트에 복사하여 붙여넣는 행위는 심각한 저작권 위반입니다. 추출한 본문 데이터는 시장 조사용 내부 자료로만 활용하거나, LLM(예: ChatGPT, Gemini) API와 연동하여 핵심 내용을 완전히 새로운 문장과 인사이트로 재구성(Rewriting)하여 발행하는 방식을 취해야 합니다.

결론 및 뉴스레터 구독 안내

파이썬과 네이버 API를 결합한 이 기초적인 파이프라인은 여러분만의 콘텐츠 자동화 공장을 짓기 위한 든든한 주춧돌이 됩니다. 여기서 한 단계 더 나아가면, 수집된 텍스트를 AI에게 전달해 자동으로 요약본을 만들고 블로그에 임시 저장까지 해두는 완전 자동화 프로세스를 완성할 수 있습니다.

💡 비즈니스 생산성을 200% 끌어올리는 자동화 치트키! 복잡한 코딩 없이도 마케팅과 데이터 수집을 자동화하는 n8n 활용법, 최신 AI 프롬프트 가이드를 가장 먼저 받아보고 싶으시다면 지금 메일침프 뉴스레터를 구독하세요. 시대를 앞서가는 비즈니스 인사이트를 매주 메일함으로 배달해 드립니다!

🔗 함께 읽으면 좋은 글

처음으로