我希望2013年5月到2014年5月的所有推文都包含给定的字词。
我查看了source code的API文档,但似乎它不允许您给出时间窗口,只有一个日期,它会在7天之前检索推文。
如何在python中检索这些推文? (基本上我想编写一个执行GET search/tweets所做的
的脚本答案 0 :(得分:0)
根据Twitter Search API文档,无法进行所需的查询:https://dev.twitter.com/rest/public/search
Twitter Search API搜索最近的推文样本 发表在过去7天。
在过去7天之内,您想要实现的目标只能通过在Twitter上手动搜索帐户来完成。
你可以尝试twarc 使用您引用的高级搜索运算符,但我不确定它是否会根据Twitter Search API文档查询整整一年。
虽然不是基于Python的,但一种替代方法是使用https://webrecorder.io/
滚动到您要录制或尝试捕获整个Feed的时间。请注意自动滚动选项。
答案 1 :(得分:0)
您将不得不将您的Twitter Feed转储到JSON并解析它以获取您想要的推文。我只是使用tweepy和json模块在Python中将它们放在一起。
#!/usr/bin/env python
import tweepy
from tweepy import OAuthHandler
import json
def process_or_store(tweet):
converted = json.dumps(tweet)
parsed = json.loads(converted)
return parsed
access_token = ''
access_secret = ''
consumer_key = ''
consumer_secret = ''
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
api = tweepy.API(auth)
for tweet in tweepy.Cursor(api.user_timeline).items():
j = process_or_store(tweet._json)
m2013 = ['May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', '2013']
m2014 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', '2014']
if all(x in j['created_at'] for x in m2013):
print "%s -- %s" % (j['created_at'], j['text'])
elif all(x in j['created_at'] for x in m2014):
print "%s -- %s" % (j['created_at'], j['text'])