繁体   English   中英

在 Twitter API v2 中流式传输多个用户

[英]Streaming multiple users in Twitter API v2

我正在从 Twitter APIv1.1 迁移到 v2,并尝试通过其 id 过滤用户的 stream 推文。 我在 python 中使用twarc.client2.Twarc2并以这种形式构建规则列表:


{'value': 'from:user1 or from:user2 or ...'}

我有超过一千个用户,由于根据 twitter API(因为我的帐户),每个规则都限制为 512 个字符,我将用户 ID 拆分为不同的规则。 在流式传输时,我以 37 秒的时间间隔更改规则,因为 API 限制在 15 分钟内仅添加 25 条规则。 到目前为止,我尝试过的大致是这样的:

def manage_streaming():
    event = threading.Event()
    thread1 = threading.Thread(target=streaming, args=(event,))
    thread1.start()
    index = 0
    while True:
        sleep(37)
        update_rule(index)
        index = 0 if index == max_index else index+1
        if event.is_set():
            break

其中流式 function 就像:


def streaming(event):
    results = client.stream(event=event)
    for result in results:
        process_tweet(result)

和 update_rule function 就像:

def update_rule(i):
    clear_rules()
    add_rule(rules_2_add[i])

它工作正常,但所有用户大约需要 43 分钟才能完成流式传输并重新开始。 所以我的问题:

在 API v2 中是否有更好的方法来 stream 多个用户? 或者是否可以在每个端口中打开具有不同规则的多个流端口?

先感谢您。 所有建议表示赞赏。

编辑!!

我混合了 API 限制,我的帐户是必不可少的,所以我只能添加 5 条规则; 之后我可以同时或异步添加 5 条规则如果我想添加更多规则,我需要删除旧规则并等待 15 分钟,没有办法添加超过 5 条规则。 对于更多的用户来说,这仍然不是有效的。

在搜索了方法和方法后,我发现有两种可能的方法(不是以编程方式)来克服这个问题:

  1. 将您的基本访问级别帐户升级到提升的访问级别。 您每月可以免费检索多达 200 万条推文,并在同一个项目中创建多达 3 个应用程序。 此外,这些应用程序中的每一个都接受多达 25 条规则,使您总共可以添加 12800 个字符长的规则。 我创建了近 60 条规则,每个应用程序最多添加 25 条规则,这样我就能够解决问题。 另外,在创建规则时,我比较了 twitter 用户名和 id 的长度,然后我使用了较小的一个。 这是一个有效的规则:
   {'value': 'from:user_1_name or from:user_2_id or ...'}
  1. 如果您的帐户不符合提升访问权限的条件,请尝试创建多个基本帐户并使用所有这些帐户进行流式传输。

有关帐户级别的更多信息: 官方页面

这是一个简单的例子,更多细节你可以访问以下网址

class TweetListener(tweepy.StreamingClient):

    def on_tweet(self, tweet):
        print(tweet.text)


stream = TweetListener(bearer_token=tw.bearer_token)

stream.add_rules(tweepy.StreamRule("from:username01 OR from:username02"))
stream.filter()

https://twittercommunity.com/t/deprecation-announcement-removing-compliance-messages-from-statuses-filter-and-retiring-statuses-sample-from-the-twitter-api-v1-1/170500

tweepy 中的示例 api v1 和 v2

更多 stream 规则文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM