在python中的给定时间窗口中搜索推文

时间:2016-05-12 18:46:19

标签: python api twitter

我希望2013年5月到2014年5月的所有推文都包含给定的字词。

我查看了source code的API文档,但似乎它不允许您给出时间窗口,只有一个日期,它会在7天之前检索推文。

如何在python中检索这些推文? (基本上我想编写一个执行GET search/tweets所做的

的脚本

2 个答案:

答案 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'])
相关问题