Reddit PRAW API:提取整个JSON格式

问题描述 投票:3回答:2

我正在使用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='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:我如何从特定日期提取评论/消息?

python python-3.x reddit praw
2个回答
2
投票

问题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中删除了时间戳搜索。这是关于它的announcement post

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

所以,目前没有办法使用Praw这样做。但你可以查看提供此功能的Pushshift api


1
投票

解!!!

我尝试过使用PRAW,但是如果有人参与其中,我应该推荐这个链接,它说明了如何使用pushshift API:

© www.soinside.com 2019 - 2024. All rights reserved.