[IT/기술] [AI 블로그 자동화 가이드] 2편 — 뉴스 소스 & 데이터 수집

관리자 Lv.1
02-22 00:22 · 조회 18 · 추천 0

Part 2: 뉴스 소스 & 데이터 수집

Tech 뉴스 소스

주요 소스

1. TechCrunch (RSS: https://techcrunch.com/feed/)

  • 고품질, 빠름, 하지만 상품화됨
  • 속보용으로 사용, 심층 분석은 아님

2. The Verge (RSS: https://www.theverge.com/rss/index.xml)

  • 소비자 테크, 제품 리뷰에 훌륭
  • 댓글 섹션에 좋은 신호 있음

3. MIT Technology Review (RSS 가능, 페이월 기사)

  • 인용용 권위 부스트
  • 심층 분석 피스

4. arXiv.org (API: http://export.arxiv.org/api/query?search_query=)

  • AI/ML 학술 논문
  • "research shows..." 신뢰성 확보용
  • 예시 쿼리: cat:cs.AI+AND+submittedDate:[202401*+TO+202412*]

커뮤니티 소스

5. Hacker News (Algolia API: http://hn.algolia.com/api/v1/search?tags=story)

  • 톱 스토리가 메인스트림보다 12-24시간 앞섬
  • 댓글 품질은 다양하지만, 업보트 높은 댓글 = 좋은 인사이트

6. Reddit r/technology (Reddit API)

  • /r/technology/rising으로 조기 트렌드 감지
  • 업보트 속도(포인트/시간)로 필터링

7. Reddit r/MachineLearning (특화된 AI 콘텐츠)

  • r/technology보다 신호 대 잡음비 높음
  • 학술 논의

수집 빈도: 뉴스 사이트는 4시간마다. 업무 시간 중 Reddit/HN은 1시간마다.

금융/주식 소스

시장 데이터

1. yfinance (Python 라이브러리)

import yfinance as yf
stock = yf.Ticker("AAPL")
data = stock.info  # 가격, 시가총액, 비율 가져옴
news = stock.news  # 주식 관련 최근 뉴스
  • 무료, 신뢰성, API 키 불필요
  • Rate limit: ~2,000 요청/시간

2. Yahoo Finance RSS (https://finance.yahoo.com/news/rssindex)

  • 속보 시장 뉴스
  • 실적 보고서

3. MarketWatch (웹 스크래핑 필요 - 먼저 TOS와 robots.txt 확인)

  • 오피니언 피스, 시장 분석
  • Beautiful Soup 사용: soup.find_all("article", class_="article__content")

커뮤니티 심리

4. Reddit r/wallstreetbets

  • 리테일 심리 지표 (역발상 신호)
  • 티커 멘션, 심리 키워드 추적

5. Reddit r/stocks (더 진지한 분석)

  • DD(Due Diligence) 포스트는 콘텐츠 금광
  • "DD" 플레어로 포스트 필터링

공식 데이터

6. SEC EDGAR (API: https://www.sec.gov/cgi-bin/browse-edgar)

  • 10-K/10-Q 제출 (실적, 리스크)
  • 사실적 데이터용, 읽기 쉬운 콘텐츠 아님

수집 전략: 매일 오후 4시 ET(시장 마감 후)에 Python 스크립트 실행. 상위 20 변동주, Reddit 트렌딩 티커, 다가오는 실적(1주일 앞) 수집.

저장 스키마:

CREATE TABLE stock_data (
  ticker VARCHAR(10),
  price DECIMAL,
  change_percent DECIMAL,
  volume BIGINT,
  reddit_mentions INT,
  sentiment_score DECIMAL,
  collected_at TIMESTAMP
);

문화/트렌드 소스

영어 소스

1. Google News (토픽별 RSS: https://news.google.com/rss/topics/)

  • /topics/CAAqJggKIiBDQkFTRWdvSUwyMHZNRFZxYUdjU0FtVnVHZ0pWVXlnQVAB = Entertainment
  • 국가 코드로 커스터마이징

2. Reddit r/entertainment, r/movies, r/television

  • 쇼, 셀럽, 논란에 대한 조기 화제

API 접근 방법

Reddit API 설정

  1. https://www.reddit.com/prefs/apps에서 앱 생성
  2. PRAW 라이브러리 사용:
import praw
reddit = praw.Reddit(
    client_id="YOUR_CLIENT_ID",
    client_secret="YOUR_SECRET",
    user_agent="BlogCollector/1.0"
)
subreddit = reddit.subreddit("technology")
hot_posts = subreddit.hot(limit=50)

Rate limit: 60 요청/분 (로그인 상태). OAuth 사용.

RSS 파싱

feedparser 사용 (Python):

import feedparser
feed = feedparser.parse("https://techcrunch.com/feed/")
for entry in feed.entries[:10]:
    print(entry.title, entry.link, entry.published)

팁: 일부 사이트는 RSS를 rate limit 한다. 예의 바르게 If-Modified-Since 헤더 사용.

웹 스크래핑 (API 없을 때)

⚠️ 법적 리마인더: 구현 전:

  • 타겟 사이트에서 robots.txt 확인
  • 서비스 약관 읽기 ("scraping", "automated access", "bots" 검색)
  • 데이터가 저작권 보호되는지 고려
  • 공식 API 사용 가능하면 사용
  • 자신을 식별하는 User-Agent 추가
  • Rate limiting 구현 (최소 2-5초 딜레이)

동적 콘텐츠엔 Selenium 사용:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument("--headless")
driver = webdriver.Chrome(options=options)
driver.get("https://example.com")
content = driver.find_element_by_id("article-content").text

탐지 방지: undetected-chromedriver 라이브러리 사용. User agent 교체. 사람 같은 딜레이 추가 (랜덤 1-3초).

💬 0 로그인 후 댓글 작성
첫 댓글을 남겨보세요!