Reddit PRAW API: извлечение всего формата JSON - PullRequest
0 голосов
/ 13 сентября 2018

Я работаю над анализом настроений с использованием 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 : Как я могу извлечь комментарии / сообщения за определенный день?

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

РЕШЕНИЕ !!!

Я пытался использовать PRAW, но если кому-то интересно, я бы рекомендовал эту ссылку, которая иллюстрирует, как использовать pushshift API :

0 голосов
/ 13 сентября 2018

Вопрос A:

Вы можете просто добавить .json в конце полного URL-адреса поста, чтобы получить полный Json для этой страницы, который включает заголовок, автора, комментарии, голоса и все остальное.

Как только вы получите полный URL-адрес сообщения, используя 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 , который предоставляет эту функцию.

...