728x90

1

 

오늘은 뉴욕타임즈의 기사 데이터를 수집해 보겠습니다.

 

https://developer.nytimes.com/

 

https://developer.nytimes.com/

 

developer.nytimes.com

 

먼저 뉴욕타임즈의 API를 가지고 와야합니다.

회원가입을 해준다음

 

 

회원 가입이 완료되면 API Key를 받아야 합니다.

그러기 위해서 자신의 정보를 눌러 Apps를 눌러 NEW APP을 생성해주세요.

 

 

그 다음에는

App Name 과 Description을 자신이 알기 편하게 작성 후

Most Popular API를 Enable 클릭해줍니다.

 

저희는 가장 인기있는 기사들을 크롤링 해올 예정이니깐요

클릭하시고 Save를 해주시면 됩니다.

그러면 API Key를 받으실 수 있습니다.

 

 

그럼 이 API key를 복사해준 다음

 

2

 

파이썬으로 로직을 짜보겠습니다.

 

 

 

뉴욕 타임즈에서 API 활용하는 방법에 대해 나와있는데요

항상 해당 사이트에서 제공하는 Document는 읽어보시는게 좋습니다.

차근 차근 읽어보시면 누구나 다 하실 수 있습니다.

 

Get most emailed articles for the last day: 지난 하루 동안 가장 많이 이메일로 전송된 기사

/emailed/1.json

 

Get most shared articles on Facebook for the last day: 지난 하루 동안 Facebook에서 가장 많이 공유된 기사

/shared/1/facebook.json

 

Get most viewed articles for the last seven days: 지난 7일간 가장 많이 본 기사

/viewed/7.json

 

그리고 .json 앞에 있는 숫자는 기간을 뜻합니다.

원하시는 기간을 적으시면 됩니다.

 

파이썬 코드는 아래와 같이 간단합니다.

import requests

# API 키와 엔드포인트 설정
api_key = 'API_KEYS를 복사해서 여기에 넣으시면 됩니다.'
 
 

# API 요청
response = requests.get(url)
if response.status_code == 200:
    data = response.json()
 
    for article in data['results']:
        print(f"Title: {article['title']}")
        print(f"URL: {article['url']}\n")
 
else:
    print(f"Failed to fetch data. Status code: {response.status_code}")

 

Result 결과값 : 

 

오늘의 결과값들이 나왔는데요

 

여기서 좀 더 추가해서 해보겠습니다.

 

Most News에서 Title을 한글로 번역하는 로직을 추가해보겠습니다.

 

 

pip install deep-translator

 

먼저 터미널에서 라이브러리를 추가해주세요.

 

그리고 

 

from deep_translator import GoogleTranslator

 

# 번역 수행
        translated_title = GoogleTranslator(source='en', target='ko').translate(original_title)

 

로직을 추가하겠습니다.

 

 

그럼 이렇게 한글로 해석되는 제목까지 나오게 됩니다!

 

마지막 최종 코드입니다.

import sys
import io
import requests
from deep_translator import GoogleTranslator

# 출력 스트림의 기본 인코딩 설정
sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding='utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding='utf-8')

# API 키와 엔드포인트 설정
api_key = 'Your API KEY'
url = f'https://api.nytimes.com/svc/mostpopular/v2/viewed/1.json?api-key={api_key}'

# API 요청
response = requests.get(url)
if response.status_code == 200:
    data = response.json()
    for article in data['results']:
        original_title = article['title']  # 원본 제목
        # 번역 수행
        translated_title = GoogleTranslator(source='en', target='ko').translate(original_title)
        print(f"Original Title: {original_title}")
        print(f"Translated Title: {translated_title}")
        print(f"URL: {article['url']}\n")
else:
    print(f"Failed to fetch data. Status code: {response.status_code}")

 

감사합니다.

728x90
반응형

+ Recent posts