【问题标题】:how to get more than 100 tweets from the twitter search or streaming api using Twython如何使用 Twython 从 twitter 搜索或流媒体 API 中获取 100 多条推文
【发布时间】:2014-06-28 17:35:17
【问题描述】:

我如何使用 Twython 来检索所有提到“#Accounting”的推文?

我使用了 Twitter 搜索 API,但我只能获得 100 条推文。

然后我尝试使用 Twitter 流过滤器 API,但无法通过地理位置缩小范围,而且似乎需要很长时间。我读到我们应该将所有推文放入数据库,然后在那里进行聚合,但我想知道是否有任何其他方法可以快速做某事。

这是我的代码:

from twython import Twython

TWITTER_APP_KEY = 'XXXX'
TWITTER_APP_KEY_SECRET = 'XXXX'
TWITTER_ACCESS_TOKEN = 'XXXX'
TWITTER_ACCESS_TOKEN_SECRET = 'XXXX'

t = Twython(app_key=TWITTER_APP_KEY, 
            app_secret=TWITTER_APP_KEY_SECRET, 
            oauth_token=TWITTER_ACCESS_TOKEN, 
            oauth_token_secret=TWITTER_ACCESS_TOKEN_SECRET)

search = t.search(q='#Accounting', 
                    geocode='-74,40,-73,41',
                    since_id='1',
                    max_id='504082008759488512'
                  )

tweets = search['statuses']
count=0
for tweet in tweets:
    count+=1
    print tweet['id_str'], '\n', tweet['text'], '\n\n\n'

print count

这是我的 Streaming API 代码:

from twython import TwythonStreamer
APP_KEY = 'XXXX'
APP_SECRET = 'XXXX' 
OAUTH_TOKEN = 'XXXX'
OAUTH_TOKEN_SECRET = 'XXXX'

class MyStreamer(TwythonStreamer):
  tweets=[] 
  def on_success(self, data):
    if 'text' in data:
        tweet= data['text'].encode('utf-8')
        if 'Accounting' in tweet:
          tweets.append(tweet)
          print tweet

  def on_error(self, status_code, data):
    print status_code
    self.disconnect()

stream = MyStreamer(APP_KEY, APP_SECRET,
                    OAUTH_TOKEN, OAUTH_TOKEN_SECRET)

stream.statuses.filter(location=['-74,40,-73,41'])

谢谢

【问题讨论】:

    标签: python twitter twython


    【解决方案1】:

    您一次只能查询 100 个,但您可以说明查询应从哪个 ID 开始(或大于或小于)。

    所以你要做的是运行你的前 100 个,然后寻找最低的 ID 并运行另一个查询,这次将那个 ID(小于 1)设置为你的最大 ID。这将返回下一个 100,您将其附加到之前的结果中。

    然后,您可以根据 Twitter 速率限制多次运行此循环。

    如果您想获取最新的推文,您应该使用 t.setMaxId() 或 t.setSinceId() 分别设置为低于或高于您当前的最低/最高 ID。

    【讨论】:

      【解决方案2】:

      https://dev.twitter.com/docs/api/1.1/get/search/tweets

      计数可选

      每页返回的推文数量,最多 100 条。默认为 15。这以前是旧搜索 API 中的“rpp”参数。

      示例值:100

      看起来你最多只能检索 100 个 :(

      【讨论】:

        猜你喜欢
        • 2015-06-06
        • 2016-06-26
        • 2021-03-30
        • 1970-01-01
        • 1970-01-01
        • 2020-03-10
        • 2013-02-28
        • 1970-01-01
        • 2011-05-06
        相关资源
        最近更新 更多