2015-06-28 6 views
2

Я пытаюсь очистить все комментарии от subreddit. Я нашел библиотеку под названием PRAW. Он приводит примерКак очистить все комментарии от subreddit на Reddit?

import praw 
r = praw.Reddit('Comment parser example by u/_Daimon_') 
subreddit = r.get_subreddit("python") 
comments = subreddit.get_comments() 

Однако это возвращает только последние 25 комментариев. Как я могу разобрать все комментарии в subreddit? На интерфейсе Reddit есть кнопка next, поэтому можно вернуться в историю по страницам.

ответ

2

От the docs:

См UnauthenticatedReddit.get_comments() для полного использования.

Эта функция имеет * арг и ** kwargs, а функция ноты:

дополнительные параметры передаются непосредственно в GET_CONTENT(). Примечание. Параметр url не может быть изменен.

Поэтому я посмотрел на эту функцию (найдите ее here). Одним из аргументов для get_content является limit.

limit - количество записей контента для извлечения. Если предел < = 0, выберите значение по умолчанию для своей учетной записи (25 для пользователей, не прошедших проверку подлинности). Если предел равен None, то выберете как можно больше записей (reddit возвращает не более 100 на запрос, однако PRAW автоматически сделает дополнительные запросы по мере необходимости).

(Акцент добавлен). Так что мой тест был:

comments=subreddit.get_comments(limit=None) 

И я получил 30+ комментариев (вероятно, 100 предела, но я должен был пройти через них вручную, так что я думал, что 30 было достаточно).

+0

ОК, я вижу, однако, мне нужно получить комментарии 'all' от subreddit. Я занимаюсь анализом данных, и вам нужно минимум минимум 10 000 комментариев. – siamii

+0

Как отмечает docs, '(reddit возвращает не более 100 на запрос, однако PRAW автоматически будет делать дополнительные запросы по мере необходимости). Поэтому, если вы продолжаете запрашивать больше данных, он будет получать больше. – IronManMark20