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