Проблема с ожиданием времени на боте Python Pinterest - PullRequest
0 голосов
/ 24 декабря 2018

Я начинающий разработчик Python и пытаюсь сделать небольшие проекты, чтобы улучшить себя.В настоящее время я разрабатываю бот Pinterest в одном из них.Этот простой бот прикрепляет изображения в папке к учетной записи с помощью API API.API имеет максимум 10 пределов визуальной загрузки в течение одного часа, и я не хочу ограничивать количество изображений в файле.Я попробовал несколько вещей, но не могу найти путь без ошибок, потому что я неопытный, думаю, что есть что-то, что я не вижу.Я был бы признателен, если бы вы могли дать мне идею.

  • Я написал простой цикл if - else, и каждый раз после загрузки десяти изображений в файл он ждет 1 час ожидания.со временемAPI выдал ошибку времени ожидания.

  • Я редактировал цикл выше в течение 7 минут.API выдал ошибку тайм-аута.

  • Я пытался сократить время. Спя до минуты, он работает хорошо, но после десяти изображений ограничение API-интерфейса стало проблемой.

  • Я определил код для запуска API как функцию с def и поместил его в цикл.Я думал, что это не будет проблемой, потому что он перезапустит API после фазы сна с else.Он без проблем вставил десять изображений, но после возврата в спящий режим API выдал ошибку времени ожидания.

Версия с циклом:

api = pinterest.Pinterest(token="")
board = ''
note = ''
link = ''

image_list = []
images = open("images.txt", "w")
for filename in glob.glob('images/*.jpg'):
    image_list.append(filename)

i = 0
p = 0
while i < len(image_list):
    if p <= 9 and image_list[i] not in images:
        api.pin().create(board, note, link, image_list[i])
        i += 1
        p += 1
        images.write(image_list[i])
    else:
        time.sleep(3600)
        p = 0
        continue 

Версияс определением:

def dude() :
    i = 0
    api = pinterest.Pinterest(token="")
    board = ''
    note = ''
    link = ''
    api.pin().create(board, note, link, image_list[i])
    time.sleep(420)

i = 0
while i < len(image_list):
    dude()
    i += 1
    print(i)

1 Ответ

0 голосов
/ 27 декабря 2018

Попробовав много вещей, я смог решить проблему с повторной попыткой библиотеки.Сначала я установил библиотеку со следующим кодом.

$ pip3 install retrying

После установки я изменил свой код следующим образом, и бот начал работать правильно без какого-либо API или ошибки времени.

from retrying import retry

image_list = []
images = open("images.txt", "w")
for filename in glob.glob('images/*.jpg'):
    image_list.append(filename)

@retry
def dude() :
    api = pinterest.Pinterest(token="")
    board = ''
    note = ''
    link = ''
    api.pin().create(board, note, link, image_list[i])

i = 0
while i < len(image_list):
    dude()
    i += 1
    time.sleep(420)
...