Reddit PRAW API:提取整个JSON格式



我正在使用Reddit API Praw进行情感分析。我的代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import praw
from IPython import display
from nltk.sentiment.vader import SentimentIntensityAnalyzer as SIA
from pprint import pprint
import pandas as pd
import nltk
import seaborn as sns
import datetime
sns.set(style='darkgrid', context='talk', palette='Dark2')
reddit = praw.Reddit(client_id='XXXXXXXXXXX',
client_secret='XXXXXXXXXXXXXXXXXXX',
user_agent='StackOverflow')
headlines = set()
results = []
sia = SIA()
for submission in reddit.subreddit('bitcoin').new(limit=None):
pol_score = sia.polarity_scores(submission.title)
pol_score['headline'] = submission.title
readable = datetime.datetime.fromtimestamp(submission.created_utc).isoformat()
results.append((submission.title, readable, pol_score["compound"]))
display.clear_output()

问题 A:使用此代码,我只能提取文本的标题和其他几个键。我想以 JSON 格式提取所有内容,但如果可能的话,研究我还没有看到的文档。

如果我只在reddit.subreddit('bitcoin'(中调用提交,结果只有id代码。我想减去所有内容,任何信息并将其保存在JSON文件中。

问题 B:如何从特定日期提取评论/消息?

问题 A:

您只需在帖子的完整网址末尾添加一个.json,即可获得该页面的完整 Json,其中包括标题、作者、评论、投票和其他所有内容。

一旦您使用submission.permalink获得帖子的完整网址。您可以使用requests来获取该页面的 Json。

import requests
url = submission.permalink
response = requests.get('http' + url + '.json') 
json = response.content # your Json

问题 B:

不幸的是,Reddit在去年的某个时候从他们的搜索API中删除了时间戳搜索。这是关于它的公告帖子。

除了一些细微的语法差异外,最显着的变化是较新的系统不再支持按确切时间戳进行搜索。仍然支持通过 ?t= 参数将结果限制为过去一小时、一天、一周、一个月和过去一年(例如 ?t=天(

因此,目前无法使用Praw.但是你可以看看提供此功能的Pushshift api。

解决方案

!!我尝试使用 PRAW,但如果有人感兴趣,我应该推荐这个链接,它说明了如何使用pushshift API

  • 红迪特讨论
  • GitHub 使用情况

最新更新