NewsAPI(https://newsapi.org/) 사용 방법 상세 가이드
NewsAPI는 전 세계 다양한 뉴스 사이트의 기사를 수집하고, JSON 형식으로 제공하는 뉴스 API야.
이 API를 활용하면 자동 뉴스 사이트 구축, 키워드 기반 뉴스 큐레이션, 실시간 뉴스 제공 등을 할 수 있어.
1. NewsAPI 가입 및 API 키 발급
1️⃣ NewsAPI 공식 사이트(https://newsapi.org/) 에 접속
2️⃣ 우측 상단의 “Get API Key” 버튼 클릭
3️⃣ 이메일 및 간단한 정보를 입력 후 가입
4️⃣ 가입이 완료되면 대시보드에서 API 키 발급
✔ 무료 플랜: 하루 100회 요청 가능
✔ 유료 플랜: 월 $24.99부터 시작 (기사 수 제한 해제, 10,000회 요청 가능)
2. NewsAPI 활용 방법 (Python 예제 포함)
NewsAPI는 REST API 방식으로 요청을 보내면 JSON 형태로 뉴스를 반환해줘.
아래 3가지 방식으로 뉴스를 가져올 수 있어.
1️⃣ 헤드라인 뉴스 가져오기
특정 국가별 주요 뉴스(헤드라인) 가져오기
GET https://newsapi.org/v2/top-headlines?country=kr&apiKey=YOUR_API_KEY
특정 카테고리(예: 비즈니스) 뉴스 가져오기
GET https://newsapi.org/v2/top-headlines?country=us&category=business&apiKey=YOUR_API_KEY
Python 코드 예제
import requests
API_KEY = "YOUR_API_KEY"
url = f"https://newsapi.org/v2/top-headlines?country=kr&apiKey={API_KEY}"
response = requests.get(url)
data = response.json()
# 뉴스 제목 출력
for article in data["articles"]:
print(article["title"])
2️⃣ 특정 키워드 기반 뉴스 검색
키워드(예: “비트코인”) 관련 최신 뉴스 검색
GET https://newsapi.org/v2/everything?q=비트코인&apiKey=YOUR_API_KEY
특정 언론사(예: CNN, BBC)에서 제공하는 뉴스만 검색
GET https://newsapi.org/v2/everything?q=비트코인&sources=cnn,bbc-news&apiKey=YOUR_API_KEY
기사 정렬 방식 선택 가능 (기본값: 최신순)
relevancy
→ 연관성 높은 순popularity
→ 인기순publishedAt
→ 최신순 (기본값)
Python 코드 예제
import requests
API_KEY = "YOUR_API_KEY"
query = "비트코인"
url = f"https://newsapi.org/v2/everything?q={query}&sortBy=publishedAt&apiKey={API_KEY}"
response = requests.get(url)
data = response.json()
# 뉴스 제목 및 출처 출력
for article in data["articles"]:
print(f" {article['title']} ({article['source']['name']})")
3️⃣ 특정 뉴스 사이트의 기사 가져오기
예를 들어, CNN, BBC, NY Times 등 특정 언론사 뉴스만 가져올 수 있어.
GET https://newsapi.org/v2/top-headlines?sources=bbc-news,cnn&apiKey=YOUR_API_KEY
Python 코드 예제
import requests
API_KEY = "YOUR_API_KEY"
sources = "bbc-news,cnn"
url = f"https://newsapi.org/v2/top-headlines?sources={sources}&apiKey={API_KEY}"
response = requests.get(url)
data = response.json()
# 뉴스 기사 출력
for article in data["articles"]:
print(f"{article['source']['name']} - {article['title']}")
3. API 응답(JSON 데이터 구조)
API 요청을 보내면 JSON 형식의 응답을 받을 수 있어.
예제 응답 데이터:
{
"status": "ok",
"totalResults": 3,
"articles": [
{
"source": { "id": "bbc-news", "name": "BBC News" },
"author": "BBC News",
"title": "비트코인 가격 상승",
"description": "비트코인이 50,000달러를 돌파했다.",
"url": "https://www.bbc.com/news/business-12345678",
"urlToImage": "https://www.bbc.com/image.jpg",
"publishedAt": "2024-02-01T12:34:56Z",
"content": "비트코인 가격이 급등하며 새로운 기록을 세웠다..."
}
]
}
✔️ 유용한 필드:
title
: 뉴스 제목description
: 요약url
: 기사 원본 링크urlToImage
: 썸네일 이미지 URLpublishedAt
: 게시 시간
4. NewsAPI를 활용한 자동 뉴스 사이트 만들기
자동 뉴스 사이트 개발 프로세스
1️⃣ NewsAPI에서 특정 키워드/카테고리 뉴스 수집
2️⃣ 데이터를 JSON으로 받아서 DB 저장 (MySQL, Firebase 등)
3️⃣ Django, Flask, WordPress API를 활용해 뉴스 표시
4️⃣ 크론잡(Cron Job)으로 자동 업데이트 설정
5. 유료 플랜이 필요한 경우
NewsAPI 무료 버전은 하루 100회 요청 제한이 있어서, 뉴스 사이트 운영할 때는 유료 플랜이 필요해.
유료 플랜 가격
플랜 | 가격 | 특징 |
---|---|---|
Free | $0 | 하루 100회 요청 |
Small | $24.99/월 | 10,000회 요청 가능 |
Medium | $49.99/월 | 30,000회 요청 가능 |
Large | $199.99/월 | 250,000회 요청 가능 |
✔ 대량 트래픽이 필요한 경우 Medium 또는 Large 플랜 추천
결론: NewsAPI를 활용한 자동화 뉴스 서비스
- ✅ 무료 버전으로 테스트 가능
- ✅ Python, PHP, JavaScript 등 다양한 언어 지원
- ✅ JSON 형식 데이터로 쉽게 파싱 가능
- ✅ 실시간 뉴스 큐레이션, 키워드 기반 뉴스 검색 가능
추천 활용법
- 1️⃣ 워드프레스 뉴스 사이트: NewsAPI + WP REST API
- 2️⃣ 뉴스 요약 AI 서비스: ChatGPT API와 결합
- 3️⃣ 텔레그램 자동 뉴스봇: 키워드 뉴스 수집 후 텔레그램으로 전송
답글 남기기