gpt4 book ai didi

python - 如何使用 Twython 从 Twitter 搜索或流媒体 API 获取超过 100 条推文

转载 作者:太空宇宙 更新时间:2023-11-03 13:17:52 30 4
gpt4 key购买 nike

我如何使用 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'])

谢谢

最佳答案

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

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

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

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

关于python - 如何使用 Twython 从 Twitter 搜索或流媒体 API 获取超过 100 条推文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23590688/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com