본문 바로가기

파이썬 학습 과정/생활속의 파이썬_응용편

"트위터 마스터: 해시태그 트윗을 실시간으로 잡아내는 비법!"

반응형

파이썬을 사용하여 Twitter에서 특정 해시태그를 추적하고 이를 Google Sheets에 기록하며, 새로운 언급이 있을 때 이메일 알림을 보내는 코드를 작성할 수 있습니다.

실시간 트위터 해시태그 추적 및 자동화를 상징하는 이미지
실시간 트위터 해시태그 추적 및 자동화를 상징하는 이미지

이 예제에서는 Tweepy 라이브러리와 Google Sheets API, 그리고 smtplib를 사용하여 이메일 알림을 보냅니다.

먼저 필요한 라이브러리를 설치합니다:


pip install tweepy gspread oauth2client

파이썬 코드는 다음과 같습니다:


import tweepy
import gspread
from oauth2client.service_account import ServiceAccountCredentials
import smtplib
from email.mime.text import MIMEText

# Twitter API 설정
CONSUMER_KEY = 'your_consumer_key'
CONSUMER_SECRET = 'your_consumer_secret'
ACCESS_TOKEN = 'your_access_token'
ACCESS_TOKEN_SECRET = 'your_access_token_secret'

# Google Sheets 설정
SCOPES = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]
CREDS_FILE = 'path_to_your_creds_file.json'
SHEET_NAME = 'your_sheet_name'

# 이메일 설정
SMTP_SERVER = 'your_smtp_server'
SMTP_PORT = 587
EMAIL_USER = 'your_email@example.com'
EMAIL_PASSWORD = 'your_email_password'
RECIPIENT_EMAIL = 'recipient_email@example.com'

# Tweepy 인증
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
api = tweepy.API(auth)

# Google Sheets 인증
creds = ServiceAccountCredentials.from_json_keyfile_name(CREDS_FILE, SCOPES)
client = gspread.authorize(creds)
sheet = client.open(SHEET_NAME).sheet1

# 이메일 알림 함수
def send_email(subject, body):
    msg = MIMEText(body)
    msg['Subject'] = subject
    msg['From'] = EMAIL_USER
    msg['To'] = RECIPIENT_EMAIL

    with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as server:
        server.starttls()
        server.login(EMAIL_USER, EMAIL_PASSWORD)
        server.sendmail(EMAIL_USER, RECIPIENT_EMAIL, msg.as_string())

# 해시태그 추적 스트림 리스너
class MyStreamListener(tweepy.StreamListener):
    def on_status(self, status):
        tweet_text = status.text
        tweet_user = status.user.screen_name
        tweet_time = status.created_at.strftime('%Y-%m-%d %H:%M:%S')

        # Google Sheets에 기록
        sheet.append_row([tweet_user, tweet_text, tweet_time])

        # 이메일 알림 전송
        email_subject = "New Tweet with Hashtag"
        email_body = f"User: {tweet_user}\nTime: {tweet_time}\n\nTweet: {tweet_text}"
        send_email(email_subject, email_body)
        print(f"New tweet from {tweet_user} recorded and email sent.")

    def on_error(self, status_code):
        if status_code == 420:
            return False

# 스트림 시작
hashtag = "#yourhashtag"
myStreamListener = MyStreamListener()
myStream = tweepy.Stream(auth=api.auth, listener=myStreamListener)
myStream.filter(track=[hashtag])

이 코드는 트위터 API를 사용하여 특정 해시태그가 언급된 트윗을 실시간으로 추적하고, 이를 Google Sheets에 기록한 뒤, 새로운 언급이 있을 때 이메일로 알림을 보냅니다.

  1. Twitter API 설정: 트위터 개발자 계정에서 발급받은 키와 토큰을 사용합니다.
  2. Google Sheets 설정: 서비스 계정 자격 증명 파일과 Google Sheets API를 사용합니다.
  3. 이메일 설정: SMTP 서버를 통해 이메일을 보냅니다.
  4. 해시태그 추적: Tweepy 스트림 리스너를 사용하여 실시간으로 트윗을 추적합니다.
  5. 데이터 기록 및 알림: 새로운 트윗이 있을 때 Google Sheets에 기록하고 이메일로 알립니다.
반응형