Случайное изображение от Flickr - PullRequest
0 голосов
/ 26 сентября 2019

Как вы получаете Flickr случайные изображения с использованием API и Python?

Я использовал следующий Flickr API:

flickr.photos.search(text,page,per_page,extras)
# where:
#       text = "flower" (also with other words the results are very disappointing about the randomness)
#       per_page = 1 (I have set 1 Image per page)
#       page = In the vast majority of cases, the number of pages found per word exceeds 100000. Therefore I set a random number between 1 and 100000
#       extras = "url_sq,url_t,url_s,url_q,url_m,url_n,url_z,url_c,url_l,url_o"

Когда я запускаю свое приложение, которое отображает изображение каждые 20секунды, результаты очень разочаровывают, в том смысле, что примерно на каждые 20 отображаемых изображений 16 всегда являются одним и тем же изображением.Ниже весь код:

def update_flickrImage(self):

    FLICKR_PUBLIC = 'XXXXXXXXXXXXXXXXXX'
    FLICKR_SECRET = 'XXXXXXXXXXX'
    flickr = FlickrAPI(FLICKR_PUBLIC,FLICKR_SECRET,format='parsed-json')
    random.seed()
    rand_page = random.randrange(1,100000,1)
    extras = 'url_sq,url_t,url_s,url_q,url_m,url_n,url_z,url_c,url_l,url_o'

    cats = flickr.photos.search(text="flower", page=rand_page, per_page=1, extras=extras)

    photos = cats['photos']

    pprint(photos)
    print("Page: ",rand_page)

    for image in photos['photo']:
        self.title = image['title']
        try:
            url = image['url_o']
            width = image['width_o']
            height = image['height_o']
        except:
            try:
                url = image['url_l']
                width = image['width_l']
                height = image['height_l']
            except:
                try:
                    url = image['url_c']
                    width = image['width_c']
                    height = image['height_c']
                except:
                    pass
    try:
        r = requests.get(url)
        self.pic = r.content
    except:
        pass
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...