【发布时间】:2020-07-09 03:04:06
【问题描述】:
我一直在关注realpython 提供的教程,尝试创建一个 twitter 机器人,该机器人根据特定用户推文中的关键字转发推文。通过使用follow 和track 参数,我应该能够只转发那些包含goal 和assist 的推文,但听众似乎转发了所有包含这些关键字而不是特定用户的推文。
#!/usr/bin/env python
# tweepy-bots/bots/retweet.py
import tweepy
import logging
from config import create_api
import json
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger()
class RetweetListener(tweepy.StreamListener):
def __init__(self, api):
self.api = api
self.me = api.me()
def on_status(self, tweet):
logger.info(f"Processing tweet id {tweet.id}")
if tweet.in_reply_to_status_id is not None or \
tweet.user.id == self.me.id:
# This tweet is a reply or I'm its author so, ignore it
return
if not tweet.retweeted:
# if 'GOAL' and 'ASSIST' in tweet.full_text:
# Retweet, since we have not retweeted it yet
try:
tweet.retweet()
except Exception as e:
logger.error("Error on fav and retweet", exc_info=True)
def on_error(self, status):
logger.error(status)
def main(keywords):
api = create_api()
tweets_listener = RetweetListener(api)
stream = tweepy.Stream(api.auth, tweets_listener)
stream.filter(follow=['761568335138058240'],
track=keywords, languages=["en"])
if __name__ == "__main__":
main(["Goal Assist"])
【问题讨论】: