我在Python中有以下代码:
import tweepy
consumer_key = "..."
consumer_secret = "..."
access_token = "..."
access_token_secret = "..."
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
start_date = datetime.datetime(2018, 1, 19, 12, 00, 00)
end_date = datetime.datetime(2018, 1, 19, 13, 00, 00)
api = tweepy.API(auth)
for tweet in tweepy.Cursor(api.user_timeline, screen_name="@IBM", since=start_date, until=end_date).items():
print("ID TWEET: " + str(tweet.id))
有没有办法在start_date
和end_date
之间通过tweepy修改游标来获取推文?
我已经尝试使用since=
和until=
参数,但它们没有用。
提前谢谢。
答案 0 :(得分:6)
首先,Twitter API不允许按时间搜索。琐碎的是,你可以做的是在Python中获取推文并查看他们的时间戳,但效率非常低。
您可以通过以下代码段执行此操作。
consumerKey = "CONSUMER_KEY"
consumerSecret = "CONSUMER_SECRET"
accessToken = "ACCESS_TOKEN"
accessTokenSecret = "ACCESS_TOKEN_SECRET"
auth = tweepy.OAuthHandler(consumerKey, consumerSecret)
auth.set_access_token(accessToken, accessTokenSecret)
api = tweepy.API(auth)
username = sys.argv[1]
startDate = datetime.datetime(2011, 6, 1, 0, 0, 0)
endDate = datetime.datetime(2012, 1, 1, 0, 0, 0)
tweets = []
tmpTweets = api.user_timeline(username)
for tweet in tmpTweets:
if tweet.created_at < endDate and tweet.created_at > startDate:
tweets.append(tweet)
while (tmpTweets[-1].created_at > startDate):
tmpTweets = api.user_timeline(username, max_id = tmpTweets[-1].id)
for tweet in tmpTweets:
if tweet.created_at < endDate and tweet.created_at > startDate:
tweets.append(tweet)
虽然效率很低。它有效,可以帮助我创建自己的机器人。
答案 1 :(得分:1)
我直到(可选的运算符)都使用过,并且看起来工作得很好。我这样使用它:
tweets = tw.Cursor(api.search,
q=search_words,
lang="en",
since=date_since,
until=date_until,
result_type="recent"
).items(2)