Получение URL-адресов сообщений с изображениями в Reddit - PullRequest
0 голосов
/ 03 марта 2019

Я работаю над ботом Reddit, целью которого является поиск репостов, когда он обнаруживает комментарий, содержащий "! Repostfinder".Бот может обнаружить строку, но я не знаю, как получить изображение, которое было прокомментировано.

Вот код, который у меня есть:

#subreddit to use
subreddit = reddit.subreddit('test')

#summoning the bot
keyphrase = '!repostfinder'

#find comments with keyphrase
for comment in subreddit.stream.comments():
    if keyphrase in comment.body:
        print('Found keyphrase')
        comment.reply('Keyphrase detected')
        print('Replied to comment')

Ответы [ 2 ]

0 голосов
/ 13 июня 2019

Для каждого комментария есть значение parent_id.В случае, если это верхний комментарий, идентификатор parrent будет начинаться с t3_ (это сообщение, вы должны это проверить), в то время как если родительский идентификатор является другим комментарием, он будет начинаться с t1_, что означает, что это был ответ на другой комментарий., которая в вашем случае была бы бесполезной информацией.

Итак, теперь вы делаете:

postData = reddit(id=subbmission.parrent_id[3:]) # This is how u get the post object
print(postData.url) # The URL of the image
0 голосов
/ 03 марта 2019

Вы должны прочитать соответствующие документы используемой вами библиотеки praw.

Вот документы praw.models.reddit.comment.Comment: https://praw.readthedocs.io/en/latest/code_overview/models/comment.html?highlight=comment

Вы можете получить комментарий, используя comment.submission.Тогда вам решать, что делать с данными.Вот документы praw.models.reddit.submission.Submission: https://praw.readthedocs.io/en/latest/code_overview/models/submission.html?highlight=submission

Пример:

# Fetch some comments
comments = []
for comment in subreddit.stream.comments():
    # Stop after fetching some comments
    if (len(comments) < 10):
        comments.append(comment)
    else:
        break
# Select specific comment
comment = comments[0]
# Get the comment's submission
submission = comment.submission
...