Я пишу сценарий, который берет некоторые сообщения из указанного субреддита, а затем использует этот URL-адрес для создания сообщения с изображением на tumblr с использованием обоих сайтов api и python. Моя проблема в том, что когда я пытаюсь получить URL-адрес из reddit для публикации в tumblr, моя программа вместо этого печатает URL-адрес случайного сабреддита (всегда URL-адрес https://www.reddit.com/r/accidentallyliberian/), мне было интересно, в чем ошибка в моем коде и почему он печатает этот URL-адрес а не тот, который я указал в своем операторе if относительно строк, содержащих'.img 'или' .png 'в URL-адресе.
import praw
import json
import pytumblr
reddit = praw.Reddit(client_id='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
client_secret='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
password='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
user_agent='url grabber by /u/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
username='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
oauth_token = 'http://www.tumblr.com/oauth/request_token'
AUTHORIZATION_URL = 'http://www.tumblr.com/oauth/authorize'
ACCESS_TOKEN_URL = 'http://www.tumblr.com/oauth/access_token'
consumer_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
consumer_secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
client = pytumblr.TumblrRestClient(
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
)
#print(reddit.user.me())
def get_post_url(subreddit, amount):
for submission in reddit.subreddit(subreddit).hot(limit = amount):
if '.img' or '.png' in submission.url:
client.create_photo('username', state = "published", tags=["testing", "ok"],
source = submission.url)
#urllib.request.urlretrieve(submission.url, filename)
print(submission.url)
else:
print('')
if __name__ == '__main__':
get_post_url('funny', 1)
Спасибо за совет, поэтому я исправил эту проблему с помощью «или», но теперь я считаю, что запрашиваемые мной URL-адреса относятся к самому сообщению, которое не оканчивается на .jpg. или .png, что мешает мне проанализировать эти URL-адреса и затем опубликовать изображение в tumblr. Итак, я предполагаю, что мой вопрос теперь в том, как мне использовать креветку, чтобы получить URL-адрес изображения, а не URL-адрес сообщения?
Это может помочь stackoverflow.com/questions/15445199/…
Большое вам спасибо, что должно заставить меня двигаться в правильном направлении.
Привет, если он печатает случайный URL-адрес субреддита, как он всегда может быть / r / случайноliberian. Либо это случайно, либо нет? Также заметил,
if '.img' or '.png' in submission.url:
не будет работать, вам нужно, если .img в submisison.url или .png в submission.url