Serper - Google Search AP 를 이용해서 오늘의 세계 뉴스를 검색하고 출력하는 방법

Serper API를 사용하여 오늘의 세계 뉴스를 검색하고 출력하는 파이썬 코드를 작성하겠습니다.
이후 코드의 주요 기능을 설명하겠습니다.


📌 Python 코드 (Serper API 활용)

import requests

# Serper API 키 입력 (사용자의 API 키 필요)
API_KEY = "YOUR_SERPER_API_KEY"

def search_world_news():
    """Serper API를 사용하여 '오늘의 세계 뉴스'를 검색하고 출력하는 함수"""
    url = "https://google.serper.dev/search"  # Serper API 엔드포인트

    headers = {
        "X-API-KEY": API_KEY,  # API 인증 키
        "Content-Type": "application/json"
    }

    payload = {
        "q": "world news today",  # 검색어
        "num": 5  # 검색 결과 개수 (최대 10개)
    }

    try:
        response = requests.post(url, json=payload, headers=headers)  # API 요청
        response.raise_for_status()  # HTTP 오류 발생 시 예외 처리
        data = response.json()  # 응답을 JSON으로 변환

        if "organic" in data:
            print("🌍 오늘의 세계 뉴스:")
            for i, result in enumerate(data["organic"], start=1):
                print(f"{i}. {result.get('title')}")
                print(f"   🔗 {result.get('link')}")
                print()
        else:
            print("❌ 뉴스 기사를 찾을 수 없습니다.")
    except requests.exceptions.RequestException as e:
        print(f"🚨 오류 발생: {e}")

if __name__ == "__main__":
    search_world_news()

🔍 코드 설명

1. API 엔드포인트 및 키 설정

url = "https://google.serper.dev/search"
API_KEY = "YOUR_SERPER_API_KEY"
  • url: Serper API의 Google Search 엔드포인트를 사용.
  • API_KEY: Serper API에서 제공받은 인증 키를 입력해야 API를 사용할 수 있음.

2. API 요청 헤더

headers = {
    "X-API-KEY": API_KEY,
    "Content-Type": "application/json"
}
  • X-API-KEY: Serper API 사용을 위해 필요한 API 인증 키.
  • Content-Type: 요청 데이터가 JSON 형식임을 명시.

3. 검색 쿼리 (검색할 내용 설정)

payload = {
    "q": "world news today",  # 검색어 설정
    "num": 5  # 최대 5개의 뉴스 검색
}
  • "q": 검색어(여기서는 "world news today", 즉 '오늘의 세계 뉴스').
  • "num": 가져올 검색 결과의 개수 (최대 10개까지 가능).

4. API 요청 및 응답 처리

response = requests.post(url, json=payload, headers=headers)  # API 요청
response.raise_for_status()  # HTTP 오류 발생 시 예외 처리
data = response.json()  # JSON 응답 변환
  • requests.post(): Serper API에 POST 요청을 보냄.
  • raise_for_status(): 응답이 HTTP 오류(400~500번대)일 경우 예외 처리.
  • response.json(): API 응답 데이터를 JSON 형식으로 변환.

5. 검색 결과 출력

if "organic" in data:
    print("🌍 오늘의 세계 뉴스:")
    for i, result in enumerate(data["organic"], start=1):
        print(f"{i}. {result.get('title')}")
        print(f"   🔗 {result.get('link')}")
        print()
  • "organic" 키를 통해 검색된 뉴스 기사 목록을 확인.
  • enumerate()를 사용해 **뉴스 번호(1, 2, 3...)**를 매김.
  • "title""link" 정보를 출력하여 뉴스 제목과 링크 제공.

6. 예외 처리

except requests.exceptions.RequestException as e:
    print(f"🚨 오류 발생: {e}")
  • requests.exceptions.RequestException: API 요청 중 오류 발생 시 메시지를 출력.

📌 실행 예시

🌍 오늘의 세계 뉴스:
1. "Ukraine conflict: Latest updates and analysis"
   🔗 https://www.bbc.com/news/world-europe-12345678

2. "US Elections: Biden and Trump face off in latest polls"
   🔗 https://www.cnn.com/politics/us-election-news

3. "China's economic growth slows amid global uncertainties"
   🔗 https://www.reuters.com/business/economy-china-2025

4. "Tech Giants Battle for AI Dominance"
   🔗 https://www.wired.com/story/ai-race-2025

5. "Climate change: UN issues urgent new warnings"
   🔗 https://www.nytimes.com/climate-issues-2025

이제 실행하면 오늘의 세계 뉴스 제목과 링크가 출력됩니다.
🎯 Serper API를 통해 최신 글로벌 뉴스를 검색하는 기능을 손쉽게 구현할 수 있습니다! 🚀

댓글 쓰기

0 댓글