我拉出了USATODAY允许的最高推文数量3000。
现在,我想创建一个脚本,在每天的11:59 PM自动提取USATODAY的推文。
我本来要使用流API,但随后我将不得不使其整天运行。
我能否获得一些有关如何创建脚本的脚本的见解,该脚本在每晚晚上11:59运行REST API以获取当天的推文?如果不是,没有人知道如何根据日期发布推文吗?
我当时正在考虑在if循环中放置ifelse语句,但这似乎效率不高,因为它每晚必须搜索3000条推文。
这就是我现在所拥有的:
client = MongoClient('localhost', 27017)
db = client['twitter_db']
collection = db['usa_collection']
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token_key, access_token_secret)
api = tweepy.API(auth)
for tweet in tweepy.Cursor(api.user_timeline,id='USATODAY').items():
collection.insert(tweet._json)
您只需借助页面即可检索这些推文。现在,在收到的每个页面上,您将对这些推文进行迭代,并提取使用进行访问的该推文的创建时间,tweet.created_at
并且您会发现提取日期与当前日期之间的差值,如果相差不到1天,这是一条有利的推文,否则您将退出循环。
import tweepy, datetime, time
def get_tweets(api, username):
page = 1
deadend = False
while True:
tweets = api.user_timeline(username, page = page)
for tweet in tweets:
if (datetime.datetime.now() - tweet.created_at).days < 1:
#Do processing here:
print tweet.text.encode("utf-8")
else:
deadend = True
return
if not deadend:
page+=1
time.sleep(500)
get_tweets(api, "anmoluppal366")
注意:您不会访问该人员的所有3000条推文,而仅迭代启动应用程序时24小时内创建的那些推文。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句