Python을 사용하여 Google 뉴스 RSS를 블로그에 자동 포스팅하기

Google 뉴스 RSS를 가져와서, WordPress 블로그에 자동으로 포스팅하는 과정을 정리해 드릴게요.

1️⃣ Python 및 환경 설정

📌 1. Python 설치

Mac에서는 기본적으로 Python이 설치되어 있지만, 최신 버전이 필요할 수도 있습니다.

brew install python

설치 후 버전을 확인하세요.

python3 --version

출력 예시: Python 3.13.1

(3.6 이상이면 OK)

📌 2. 가상 환경(venv) 설정

가상 환경을 만들어 프로젝트를 격리하는 것이 좋습니다.

mkdir rss_to_blog
cd rss_to_blog
python3 -m venv venv
source venv/bin/activate  # 가상 환경 활성화

source venv/bin/activate를 실행하면 (venv)가 터미널 앞에 붙어야 합니다.

📌 3. 필요한 패키지 설치

pip install feedparser requests

• feedparser → RSS 피드를 가져오기 위한 라이브러리

• requests → WordPress API 호출을 위한 HTTP 라이브러리

2️⃣ Google 뉴스 RSS 가져오기

Python 코드로 Google 뉴스 RSS를 가져와봅니다.

📌 Google 뉴스 RSS URL 예시

import requests
import feedparser

rss_url = "https://news.google.com/rss?hl=ko&gl=KR&ceid=KR:ko"

# 브라우저처럼 보이도록 User-Agent 설정
headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36"
}

# RSS 요청 보내기
response = requests.get(rss_url, headers=headers)
feed = feedparser.parse(response.content)

# RSS 데이터 확인
print("✅ 받아온 뉴스 개수:", len(feed.entries))

for entry in feed.entries[:5]:  # 최신 5개 기사 출력
    print(f"제목: {entry.title}")
    print(f"링크: {entry.link}")
    print(f"게시 날짜: {entry.published}")
    print("-" * 40)

실행

python3 rss_test.py

✅ 정상 실행되면 최신 뉴스 5개가 출력됩니다.

3️⃣ WordPress API를 이용해 블로그에 자동 포스팅

📌 1. WordPress REST API 설정

WordPress에서 API를 사용하려면 Application Password를 발급받아야 합니다.

1. WordPress 관리자 페이지로 이동 (https://your-wordpress-site.com/wp-admin)

2. 사용자 → 내 프로필 (Users → Your Profile)

3. Application Passwords 섹션에서 새 비밀번호 생성

(예: RSS Auto Poster)

4. 발급된 비밀번호를 저장해 둡니다.

📌 2. WordPress에 자동 포스팅하는 Python 코드

RSS에서 뉴스 데이터를 가져와 WordPress 블로그에 자동으로 게시하는 코드입니다.

import requests
import feedparser
from requests.auth import HTTPBasicAuth

# ✅ Google 뉴스 RSS URL
rss_url = "https://news.google.com/rss?hl=ko&gl=KR&ceid=KR:ko"

# ✅ WordPress REST API 설정
WP_URL = "https://your-wordpress-site.com/wp-json/wp/v2/posts"
WP_USERNAME = "your_username"  # WordPress 관리자 계정
WP_APP_PASSWORD = "your_application_password"  # 발급받은 비밀번호

# ✅ RSS 요청 보내기
headers = {"User-Agent": "Mozilla/5.0"}
response = requests.get(rss_url, headers=headers)
feed = feedparser.parse(response.content)

# ✅ 최신 뉴스 3개 포스팅
for entry in feed.entries[:3]:
    post_title = entry.title
    post_content = f"<p><a href='{entry.link}'>기사 원문 보기</a></p>"

    # WordPress API 요청 데이터
    post_data = {
        "title": post_title,
        "content": post_content,
        "status": "publish"  # 'draft'로 하면 검토 후 게시 가능
    }

    # ✅ WordPress API 요청
    wp_response = requests.post(WP_URL, json=post_data, auth=HTTPBasicAuth(WP_USERNAME, WP_APP_PASSWORD))

    if wp_response.status_code == 201:
        print(f"✅ 게시 성공: {post_title}")
    else:
        print(f"❌ 게시 실패: {wp_response.text}")

📌 실행

python3 rss_to_wordpress.py

✅ 성공하면 블로그에 뉴스가 자동으로 게시됩니다.

4️⃣ 자동 실행 (스케줄링)

뉴스를 정기적으로 자동 포스팅하려면 cron을 설정합니다.

📌 1. crontab 설정

crontab -e

📌 2. crontab에 추가

매일 오전 9시에 실행하고 싶다면:

0 9 * * * /Users/bigeyes0218/Developments/rss_to_blog/venv/bin/python3 /Users/bigeyes0218/Developments/rss_to_blog/rss_to_wordpress.py

✅ 이제 매일 오전 9시에 Google 뉴스가 자동으로 블로그에 게시됩니다!

🚀 최종 정리

단계설명
1Python 및 가상 환경 설정 (venv)
2feedparser를 이용해 Google 뉴스 RSS 가져오기
3WordPress REST API를 이용해 자동 포스팅
4crontab으로 정기 실행 자동화

✅ 이제 Python을 이용해 Google 뉴스 → WordPress 블로그 자동 포스팅이 완성되었습니다! 🚀😊