PRAW 6: Получить все представления subreddit - PullRequest
0 голосов
/ 31 декабря 2018

Я пытаюсь перебрать записи определенного субредита от самого нового до самого старого, используя PRAW.Раньше я делал это так:

subreddit = reddit.subreddit('LandscapePhotography')
for submission in subreddit.submissions(None, time.time()):
    print("Submission Title: {}".format(submission.title))

Однако, когда я пытаюсь сделать это сейчас, я получаю следующую ошибку:

AttributeError: 'Subreddit' object has no attribute 'submissions'

При взгляде надокументы, которые я не могу понять, как это сделать.Лучшее, что я могу сделать, это:

for submission in subreddit.new(limit=None):
    print("Submission Title: {}".format(submission.title))

Однако это ограничено только первыми 1000 отправками.

Есть ли способ сделать это со всеми представлениями, а не только с первыми 1000

1 Ответ

0 голосов
/ 05 января 2019

К сожалению, Reddit удалил эту функцию из своего API.

Ознакомьтесь с PRAW changelog .Одно из изменений в версии 6.0.0:

Удалено

В связанном сообщении говорится, что Reddit отключает Cloudsearch для всех пользователей:

Начиная с 15 марта 2018 года мы начнем постепенно двигатьсяПользователи API перешли на новую поисковую систему.К концу марта мы ожидаем, что все будут отключены и, наконец, выключим старую систему.

PRAW Subreddit.sumbissions() использовал Cloudsearch для поиска сообщений между заданными временными метками.Поскольку Cloudsearch был удален, а поиск, который заменил его, не поддерживает поиск по отметке времени, больше невозможно выполнять поиск по отметке времени с помощью PRAW или любого другого клиента Reddit API .Это включает в себя попытку получить все сообщения из subreddit.

Для получения дополнительной информации см. эту ветку / r / redditdev, опубликованную сопровождающим PRAW .


Альтернативы

Поскольку Reddit ограничивает все списки ~ 1000 записями, в настоящее время невозможно получить все сообщения в subreddit, используя их API.Однако существуют сторонние наборы данных с API, такие как pushshift.io .Как сказано / u / kungming2 в Reddit :

Вы можете использовать Pushshift.io для получения данных за определенные периоды времени, используя их API:

https://api.pushshift.io/reddit/submission/search/?after=1334426439&before=1339696839&sort_type=score&sort=desc&subreddit=translator

Это, например, позволяет вам анализировать отправку в r / transator в период с 2012-04-14 по 2012-06-2014.

...