@thereisnonickname

Получаю 429 status_code, хотя и делаю sleep(30) перед каждым запросом и использую прокси в каждом треде?

Всем привет!

Написал скрипт для парсинга некоторых данных из инстаграм.
Так как обработать нужно сразу много постов, то для парсинга каждого поста я создаю тред, внутри которого с помощью requests.Session происходят запросы к https://www.instagram.com/graphql/query/. Для каждого треда используется индивидуальный публичный прокси (from proxy import Proxy), также, перед тем как выполнить очередной запрос тред засыпает на 25 - 30 секунд, однако всё бесполезно, в середине работы скрипта я всегда получаю ответ со статусом 429 - TooManyRequests, хотя с каждого прокси совершается не более 2 запросов в минуту.

Причём всё выглядит так, как будто бы requests.Session игнорирует переданный прокси и стучится с моего айпи - например, у меня создано 20 тредов, как только первый тред получает 429 TooManyRequests, остальные треды тут же получают такой же респонс, с таким же статус кодом!

Вот кусок кода:
proxies = get_proxy_list()
    random.shuffle(proxies)

    idx_counter = 0
    for code in shortcodes:
        proxy = proxies[idx_counter]
        idx_counter += 1

        session = requests.Session()
        session.proxies.update(proxy)
        humanize_session(session)

        threading.Thread(target=new_load_data, args=(session, code, )).start()


В методе new_load_data из значимого только следующий код:
sleep(random.randint(25, 30))
print(f'Запрос для {code}')
response = session.get(QUERY_ROUTE, params={'query_hash': QUERY_HASH,
                                            'variables': json.dumps(load_data_vars)})


Что я делаю не так?
  • Вопрос задан
  • 487 просмотров
Пригласить эксперта
Ответы на вопрос 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
@Verz1Lka
Web scraping expert
1. вы можете проверить через любой публичный чекер, какой IP видит сайт.
2. Возможно, у вас куки шарятся между всеми тредами, и вас тупо по ним и палят :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы