Как вы получаете URL-адрес объекта отправки в PRAW?

Я использую PRAW для создания бота Reddit, который отправляет что-то один раз в день. После отправки я хочу сохранить URL-адрес отправки и записать его в текстовый файл.

url = r.submit(subreddit, submission_title, text=submission_text)

Вышеприведенное возвращает объект Submission, но мне нужен фактический URL-адрес. Есть ли способ получить URL-адрес из объекта отправки или мне нужно сделать что-то еще, чтобы получить URL-адрес?


person vwos    schedule 07.10.2015    source источник


Ответы (2)


submission.shortlink (ранее .short_link) — это то, что вам нужно, если submission.permalink недостаточно хорош.

reddit = praw.Reddit("Amos")
submission = reddit.get_submission(submission_id="XYZ")
print submission.permalink
>>> www.reddit.com/r/subreddit/comments/XYZ
person TankorSmash    schedule 07.10.2015

Я вижу, что @TankorSmash уже ответил на ваш вопрос, хотя я подумал, что мог бы добавить некоторые фундаментальные знания для будущих ссылок:

Если вы используете "dir(object)", вы сможете увидеть как атрибуты, так и методы которые относятся к API Reddit (который вы можете использовать для тестирования и просмотра всех свойств, влияющих на данный тестируемый объект). Вы можете игнорировать все, что начинается с подчеркивания (скорее всего).

Примером может быть:

submissionURL = submission.url

Или вы можете перейти прямо к источнику, откуда PRAW получает данные. Имена переменных не устанавливаются PRAW, они взяты из этого JSON (ссылка выше).

person Saroekin    schedule 11.11.2015
comment
Эй, я знаю, что это старая тема, но я использовал ее, и для представлений с изображениями я получил ссылку на изображение, а для текстовых сообщений я получил ссылку на комментарии, не могли бы вы объяснить, как это работает.? - person Vinay Bharadhwaj; 14.02.2019