News API는 전 세계 어떤 웹사이트에서든 뉴스 기사를 검색하고 가져올 수 있는 매우 유명한 오픈 API입니다. 이 API를 활용하면 원하는 언론 사이트의 최신 뉴스 헤드라인을 손쉽게 불러올 수 있으며, 특히 상위 10개 주요 뉴스 제목을 자동으로 추출하는 데 널리 사용됩니다.
다만 News API를 사용하려면 반드시 API 키(API Key)가 필요합니다. newsapi.org에 무료로 가입하면 개인용 API 키를 발급받을 수 있으며, 발급받은 키는 요청 URL에 함께 전달해야 정상적으로 데이터를 받을 수 있습니다.
뉴스 API 호출 예제 코드
아래는 파이썬의 requests 라이브러리를 사용해 BBC 뉴스의 최신 헤드라인을 가져오는 기본 예제입니다.
import requests
def Topnews():
# BBC 뉴스 API
my_api_key = "여기에_발급받은_API_키_입력"
my_url = "https://newsapi.org/v1/articles?source=bbc-news&sortBy=top&apiKey=" + my_api_key
my_open_bbc_page = requests.get(my_url).json()
my_article = my_open_bbc_page["articles"]
my_results = []
for ar in my_article:
my_results.append(ar["title"])
for i in range(len(my_results)):
print(i + 1, my_results[i])
# 실행 부분
if __name__ == '__main__':
Topnews()
코드 설명
- requests.get() : 지정한 URL로 HTTP GET 요청을 보내고,
.json()으로 응답을 딕셔너리 형태로 변환합니다. - articles : 응답 JSON에서 실제 뉴스 기사 목록이 담긴 필드입니다.
- title : 각 기사 객체에서 뉴스 제목만 추출해 리스트에 저장합니다.
- 출력 결과 : 번호와 함께 상위 뉴스 헤드라인이 순서대로 콘솔에 출력됩니다.
※ 참고: 현재 News API 공식 문서에서는 구버전(v1) 대신 최신 엔드포인트인 /v2/top-headlines?sources=bbc-news&apiKey=YOUR_KEY 사용을 권장하고 있습니다. 구조는 위 예제와 거의 동일하게 적용할 수 있습니다.
Pandas DataFrame으로 변환하기
가져온 뉴스 데이터를 단순 출력용이 아니라 분석이나 후처리 작업에 활용하려면 pandas DataFrame으로 변환하는 것이 훨씬 편리합니다. JSON 데이터를 DataFrame으로 바꾸는 방법은 매우 간단하며, pd.DataFrame.from_dict()와 .apply(pd.Series)를 조합하면 됩니다.
import pandas as pd # 앞서 받은 JSON 응답(my_open_bbc_page)에서 기사 목록 추출 my_df = pd.DataFrame.from_dict(my_open_bbc_page["articles"]).apply(pd.Series) # 제목과 링크만 깔끔하게 확인 print(my_df[["title", "url"]])
이렇게 변환된 DataFrame은 CSV 파일로 저장하거나(to_csv), 특정 키워드가 포함된 기사만 필터링하는 등 다양한 데이터 분석 작업에 그대로 활용할 수 있습니다. 뉴스 크롤링 자동화, 일일 브리핑 봇 제작 등 확장 프로젝트의 첫걸음으로도 좋은 예제이니 직접 응용해 보시기 바랍니다.