네이버

네이버 API로 블로그 데이터를 자동 수집해봤어요

신마성 2025. 5. 14. 15:19

본문 추출, 필터링까지 한 번에!

 

마케팅이나 트렌드 분석할 때

실시간 블로그 데이터를 자동으로 수집할 수 있다면

정말 유용하겠죠?

 

이번 글에서는 네이버 검색 API를 활용해

특정 키워드로 검색된 블로그 글의

  • 제목
  • 요약
  • 블로거 이름
  • 게시일
  • 링크

그리고 본문 일부를 직접 추출해서 정리하는 작업까지 진행해봤어요.


핵심 기능 정리

  • 네이버 오픈API로 블로그 검색 결과 받아오기
  • Selenium으로 각 블로그 링크 열기
  • 본문 중 필요한 문장만 추출
  • csv로 자동 저장 (요청 시마다 새 파일로 저장됨)

1. 네이버 블로그 검색 API 사용하기

네이버 개발자센터에서 애플리케이션을 등록하고,

발급받은 Client ID / Client Secret은 .env 파일로 안전하게 관리했어요.

 

API 요청은 이렇게 구성돼요:

url = f"<https://openapi.naver.com/v1/search/blog.json?query={query}&display=20>"
headers = {
    "X-Naver-Client-Id": os.getenv("NAVER_CLIENT_ID"),
    "X-Naver-Client-Secret": os.getenv("NAVER_CLIENT_SECRET")
}

 

응답으로는 title, link, description, bloggername, postdate 같은 값이 들어 있어요.


2. Selenium으로 본문 열기 + 추출

네이버 블로그는 본문이 iframe 안에 들어 있어요.

그래서 requests 방식으로는 추출이 안 되고,

Selenium으로 직접 iframe에 들어가서 열어줘야 해요.

 

본문 위치도 블로그마다 다 달라서,

아래처럼 여러 셀렉터를 순차적으로 시도했어요:

selectors = [
    "div.se-main-container", "div#postViewArea",
    "div#contentArea", "div.post-view", "section.blog"
]
for sel in selectors:
    content = soup.select_one(sel)
    if content:
        break

3. 필요한 문장만 필터링

모든 본문을 다 저장하지는 않았어요.

실무적으로 필요한 부분만 추출하는 방식으로 만들었어요.

  • 앞 2문단
  • 검색 키워드가 포함된 문장
  • 감성 키워드(예: 맛있, 추천, 최고) 포함 문장
python
복사편집
lines = content.get_text(separator="\\n", strip=True).split("\\n")
keyword_lines = [line for line in lines if any(k in line for k in keywords)]
sentiment_lines = [line for line in lines if any(k in line for k in sentiment_keywords)]
first_two = lines[:2]

 

최종적으로는 중복 제거 후 1000자 이내로 정리했어요.


4. 실행할 때마다 새 파일로 저장

timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
filename = f"naver_blog_results_{timestamp}.csv"

 

이렇게 하면 매번 실행할 때마다

자동으로 새로운 csv 파일이 저장돼요.


5. 실행 후 출력 예시

[떡볶이] 검색 결과 수: 20
모든 데이터를 저장했습니다: 현재 폴더 안에 자동으로 저장돼요
(예: ./naver_blog_results_20250514_133452.csv)

오류 체크도 꼼꼼하게

  • csv 파일이 열려 있으면 PermissionError로 안내
  • 본문 추출 실패 시 (본문 없음)으로 처리
  • API 요청 실패도 키워드별로 알려줘요

마무리

네이버 오픈API만 활용하면 간단한 제목 수집까지는 누구나 가능해요.

하지만 실전에서는 본문 내용 필터링 + 정제된 저장 방식이 훨씬 중요하죠.

 

이번 작업에서는 다음 흐름을 자동화했어요:

  • 키워드로 검색 결과 수집
  • 본문 접속 → 필요한 문장만 추출
  • CSV로 저장 (타임스탬프 자동 포함)