首页 > 解决方案 > 与 PRAW 并行处理帖子和评论的方法?

问题描述

我正在构建一个小程序来从 reddit 上的金融 subreddits 中提取单词,问题是平均需要 12 秒才能获取我需要的所有数据。我运行了 cProfiler,果然大部分延迟来自 reddit 的 API 和我的请求的响应时间。

有没有办法让它并行获取帖子和发表评论,以便并行而不是按顺序发送 API 请求?我尝试使用多处理库获取 google url,效果很好,但是使用 reddit API 我已经使用了几天,这让我很头疼。

请原谅我的代码,因为我对 python 和一般编码有点陌生。任何帮助表示赞赏。我将在下面留下我的代码:

def reddit_search_bot(company):
    service = "Reddit"
    reddit_positive_points = 0
    reddit_negative_points = 0
    subreddit_array = ['wallstreetbets', 'IPO', 'Daytrading', 'CryptoCurrency']
    for subreddit in subreddit_array:
        hot_posts = reddit.subreddit(subreddit).hot(limit=30)
        for post in hot_posts:
            if findWholeWord(company)(post.title) or findWholeWord(company)(post.selftext):
                post.comments.replace_more(limit=0)
                for comments in post.comments.list():
                    for word in Positive_words_array:
                        if findWholeWord(word)(comments.body) or findWholeWord(word)(post.selftext):
                            reddit_positive_points += 1
                    for word in Negative_words_array:
                        if findWholeWord(word)(comments.body) or findWholeWord(word)(post.selftext):
                            reddit_negative_points += 1
    total_points = reddit_positive_points - reddit_negative_points
    writeResultToFile(service, company, reddit_positive_points, reddit_negative_points)
    print("Reddit positive mentions :", reddit_positive_points, "Reddit negative mentions :", reddit_negative_points,
          "Overall :", total_points)

标签: pythonmultithreadingparallel-processingpraw

解决方案


推荐阅读