python - 与 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)
解决方案
推荐阅读
- java - 如何从java运行外部可执行文件并将输出保存在txt中
- c# - 如何在 asp.net 身份中的单个命令中获取 User RoleClaim?
- php - PHP cURL 请求头
- amazon-web-services - 写入后成功读取的 S3 一致性
- linux - Docker:将返回值设置为环境变量
- java - AJAX 请求向 Java Spring 控制器发送空参数
- pandas - 按百分位级别对数据框进行分组
- java - 如何过滤 Hashmap 以使用 Java 8 流即时更新值?
- javascript - NPM 安装包:GeoFireX,谷歌云功能出错
- google-sheets - Powerbi & Google 表格实时同步