【问题标题】:Reddit PRAW API: Extracting entire JSON formatReddit PRAW API:提取整个 JSON 格式
【发布时间】:2019-02-18 05:13:58
【问题描述】:

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

问题 B:如何提取特定日期的 cmets/消息?

【问题讨论】:

    标签: python python-3.x reddit praw


    【解决方案1】:

    问题 A:

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

    使用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

    【讨论】:

    • 一团糟!你解决了我的麻烦。我一直在花费数小时研究文档以找到更多信息。谢谢你的推荐!
    【解决方案2】:

    解决方案!!!

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

    【讨论】:

      猜你喜欢
      • 2020-08-16
      • 1970-01-01
      • 2015-09-06
      • 2020-11-23
      • 2017-07-20
      • 2012-09-25
      • 1970-01-01
      • 2018-09-19
      • 1970-01-01
      相关资源
      最近更新 更多