Reddit PRAW API:提取整个 JSON 格式

Reddit PRAW API: Extracting entire JSON format

我正在使用 The 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='Whosebug')

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')中只调用submission 结果只有id码.我想提取所有内容,任何信息并将其保存在 JSON 文件中。

问题 B:如何从特定日期提取 comments/messages?

问题一:

您可以简单地在 post 的完整 url 末尾添加一个 .json 以获得该页面的完整 Json,其中包括标题、作者、评论、投票和其他一切。

使用 submission.permalink 获得 post 的完整 url 后。您可以使用 requests 获取该页面的 Json。

import requests

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

B题:

不幸的是,Reddit 去年某个时候从他们的搜索 api 中删除了时间戳搜索。这是关于它的 announcement post

Besides some minor syntax differences, the most notable change is that searches by exact timestamp are no longer supported on the newer system. Limiting results to the past hour, day, week, month and year is still supported via the ?t= parameter (e.g. ?t=day)

因此,目前无法使用 Praw 执行此操作。但是您可以查看提供此功能的 Pushshift api

解决方案!!!

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