在异步环境中使用PRAW从reddit中选择随机帖子的更快方法

2024-06-02 10:24:18 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有最快的方法从一个选择的subreddit的“热门”类别使用PRAW获得一个随机帖子,因为我的代码可能需要3秒。我试着用randint来缩小范围,但它没有改变任何东西,也不理想,因为我希望它有更大的范围。在

我使用来获取用户对subreddit的选择。在

到目前为止我发现的最好的方法是:

async def on_message(message):
        reddit = connect_api() # Auth to the API
        sub = message.content[8:] # subreddit choice from user
        hot_results = reddit.subreddit(sub).hot()
        random_num = random.randint(1, 100)

        for i in range(0, random_num):
            random_post = next(x for x in hot_results if not x.stickied)

我还试图将每个帖子附加到一个列表中,然后从中随机选择一个帖子,但显然这篇文章更长。在

互联网连接应该是相当好的,因为我是运行在一个视频处理系统。在


Tags: 方法inmessageforrandom类别resultsnum
1条回答
网友
1楼 · 发布于 2024-06-02 10:24:18

我已经在命令本身之外完成了api连接,以便在bot第一次启动时加载它(可能有助于提高速度)

reddit = praw.Reddit(client_id='CLIENT ID',client_secret='CLIENT SECRET',user_agent='USER AGENT')

这就是我随机选择的方式(我使用的是机密模块,而不是随机的,因为一些兼容性问题,但我认为它不会改变命令的速度)

^{pr2}$

我已经将每个请求定时到多个子标题,从一篇文章中加载“picture+title”最多需要
0.8秒
希望这些能有所帮助!在

相关问题 更多 >