如何转发 Python 中用户的推文(而不是他们的关注者 tweets/RTs)
How to retweet users' tweets in Python (and not their followers' tweets/RTs)
我正在构建一个机器人,它将复制和粘贴来自多个用户(总统选举候选人)的推文。
当我 运行 代码时,我的机器人实际上在复制 支持者的 推文和转推,从而在我的页面上造成疯狂的流量 - 我只想复制 候选人自己 从他们的帐户发推文。
有人知道怎么做吗?
我是这样想的:
if tweetText.startswith('RT @'):
pass
会解决 RT 问题,但显然不会...
这是我的代码:
import twitter, sys, json, csv, time
# this app is being run by cast laboratory..@CASTlaboratory (4003669463)
consumer_key=""
consumer_secret=""
access_token=""
access_token_secret=""
auth = twitter.oauth.OAuth(access_token, access_token_secret,consumer_key, consumer_secret)
twitter_api = twitter.Twitter(auth=auth)
#Users we are following: Nicolas Dupont-Aignan, Francois Asselineau, Francois Fillon, Philippe Poutou, Jacques Cheminade, Emmanuel Macron, Nathalie Arthaud, Marine le Pen, Benoit Hamon, Jean Lassalle, Jean Luc Melenchon.
u = "38170599, 200659061, 551669623, 374392774, 150201042, 1976143068, 1003575248, 217749896, 14389177, 102722347, 80820758"
print >>sys.stderr, 'Retweeting everything for users="%s"' % (u)
twitter_stream = twitter.TwitterStream(auth=twitter_api.auth)
stream = twitter_stream.statuses.filter(follow=u)
for tweet in stream:
tweetText = tweet['text'].encode('utf-8')
print tweetText
user = tweet['user']['screen_name']
if tweetText.startswith('RT @'):
pass
else:
print tweetText
twitter_api.statuses.update(status = tweetText)
time.sleep(60)
谢谢!
要过滤推文以仅匹配来自您正在查看的用户的推文,您应该能够执行如下操作:
for tweet in stream:
tweet_text = tweet['text'].encode('utf-8')
user_id = tweet['user']['id']
user_name = tweet['user']['screen_name']
if user_id in u:
print '@{}: {}'.format(user_name, tweet_text)
time.sleep(60)
else:
pass
正如评论中所讨论的,您不应该一揽子转发来自不同帐户的推文。如果这是你在作业中被明确要求做的事情,也许你应该在你的回答中强调这一点。
我正在构建一个机器人,它将复制和粘贴来自多个用户(总统选举候选人)的推文。 当我 运行 代码时,我的机器人实际上在复制 支持者的 推文和转推,从而在我的页面上造成疯狂的流量 - 我只想复制 候选人自己 从他们的帐户发推文。
有人知道怎么做吗?
我是这样想的:
if tweetText.startswith('RT @'):
pass
会解决 RT 问题,但显然不会...
这是我的代码:
import twitter, sys, json, csv, time
# this app is being run by cast laboratory..@CASTlaboratory (4003669463)
consumer_key=""
consumer_secret=""
access_token=""
access_token_secret=""
auth = twitter.oauth.OAuth(access_token, access_token_secret,consumer_key, consumer_secret)
twitter_api = twitter.Twitter(auth=auth)
#Users we are following: Nicolas Dupont-Aignan, Francois Asselineau, Francois Fillon, Philippe Poutou, Jacques Cheminade, Emmanuel Macron, Nathalie Arthaud, Marine le Pen, Benoit Hamon, Jean Lassalle, Jean Luc Melenchon.
u = "38170599, 200659061, 551669623, 374392774, 150201042, 1976143068, 1003575248, 217749896, 14389177, 102722347, 80820758"
print >>sys.stderr, 'Retweeting everything for users="%s"' % (u)
twitter_stream = twitter.TwitterStream(auth=twitter_api.auth)
stream = twitter_stream.statuses.filter(follow=u)
for tweet in stream:
tweetText = tweet['text'].encode('utf-8')
print tweetText
user = tweet['user']['screen_name']
if tweetText.startswith('RT @'):
pass
else:
print tweetText
twitter_api.statuses.update(status = tweetText)
time.sleep(60)
谢谢!
要过滤推文以仅匹配来自您正在查看的用户的推文,您应该能够执行如下操作:
for tweet in stream:
tweet_text = tweet['text'].encode('utf-8')
user_id = tweet['user']['id']
user_name = tweet['user']['screen_name']
if user_id in u:
print '@{}: {}'.format(user_name, tweet_text)
time.sleep(60)
else:
pass
正如评论中所讨论的,您不应该一揽子转发来自不同帐户的推文。如果这是你在作业中被明确要求做的事情,也许你应该在你的回答中强调这一点。