Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬(Python) 뉴스 API로 주요 뉴스 헤드라인 가져오기 완전 정리

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), 특정 키워드가 포함된 기사만 필터링하는 등 다양한 데이터 분석 작업에 그대로 활용할 수 있습니다. 뉴스 크롤링 자동화, 일일 브리핑 봇 제작 등 확장 프로젝트의 첫걸음으로도 좋은 예제이니 직접 응용해 보시기 바랍니다.