OlegYurchik / pyInstagram

This is a simple and easy-to-use library for interacting with the Instagram. The library works through the web interface of the Instagram and does not depend on the official API
MIT License
232 stars 49 forks source link

400 Client Error: Bad Request for url: https://www.instagram.com/accounts/login/ajax/ #14

Open lawejr opened 6 years ago

lawejr commented 6 years ago

Только начал использовать библиотеку, кинул несколько тестовых запросов, согласно примерам в README - все прошло на "ура"

После 5-6 запросов, теперь всегда падает ошибка

requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: https://www.instagram.com/accounts/login/ajax/

Ощущение, что инстаграмм блокирует запросы, т.к. при входе в веб-версию/приложение с этого аккаунта появляется окно с просьбой подтвердить, что предыдущие запросы действительно делал я http://take.ms/oRE0K

Эту проблему как-то можно обойти?

P.S. Логин таким образом

agent = AgentAccount("login", "password")
OlegYurchik commented 6 years ago

Здравствуйте, теоретически возможно, надо просто также сэмулировать нажатие клавиши. Как будет время - займусь)

OlegYurchik commented 6 years ago

Не могли бы вы рассказать, с какими параметрами вы запускаете библиотеку? IP из скрипта и веб-версии одинкаовые?

lawejr commented 6 years ago

IP одинаковые. Какие именно параметры интересуют? Ошибка возникала уже на этапе создания агента

agent = AgentAccount("login", "password")

Никакие другие настройки я не изменял.

OlegYurchik commented 6 years ago

Понял. Выяснил, что при запросах к инстаграмму, по-видимому, есть основной "девайс" и побочные, которым он не доверяет. Кажется, ваш клиент из библиотеки оказался тем самым второстепенным девайсом и его нужно подтвердить с основного или подтвердить по почте, по-другому проблему никак не обойти. Для подтверждения по почте надо согласиться с отправкой эмейла и ввести из него код. Как я понял, это ваш случай, и вам просто проще подтвержать при падении библиотеки, что это ваш аккаунт.

OlegYurchik commented 6 years ago

Есть второй вариант, когда "девайс" из библиотеки оказывается основным - тут всё проще, нужно действительно просто сэмулировать нажатие клавиши, но к соалению отловить этот сценарий я пока не смог

Если вам не сложно, могли бы вы отправить полностью страницы, все запросы с заголовками и данными, которые у вас появляются из браузера

lawejr commented 6 years ago

Пока не могу воспроизвести проблему. Скрипт получает доступ к аккаунту и может нормально продолжать в нем работать. Единственное, что при каждом запуске скрипта на почту приходит уведомление, что в аккаунт произведен вход с такого-то устройства из такого-то места. Буду дальше тестировать различный функционал: подписки/отписки/лайки и тд. Если проблема опять возникнет, вытащу все запросы/ответы с заголовками и отпишусь.

One2dots commented 5 years ago

Кажется, ваш клиент из библиотеки оказался тем самым второстепенным девайсом и его нужно подтвердить с основного или подтвердить по почте, по-другому проблему никак не обойти. Для подтверждения по почте надо согласиться с отправкой эмейла и ввести из него код. Как я понял, это ваш случай, и вам просто проще подтвержать при падении библиотеки, что это ваш аккаунт.

А как и где соглашаться с отправкой эмейла? У меня только окно с кнопками "Это не я " и "Это я".

One2dots commented 5 years ago

Пока не могу воспроизвести проблему. Скрипт получает доступ к аккаунту и может нормально продолжать в нем работать. Единственное, что при каждом запуске скрипта на почту приходит уведомление, что в аккаунт произведен вход с такого-то устройства из такого-то места. Буду дальше тестировать различный функционал: подписки/отписки/лайки и тд. Если проблема опять возникнет, вытащу все запросы/ответы с заголовками и отпишусь.

Здравствуйте. Каким образом вы решили проблему? Не подскажите?

OlegYurchik commented 5 years ago

Пока никак не решил. В последней версии, которая находится в master, сделал отдельно создание агента и его авторизацию, так что думаю что при получении такой ошибки буду имитировать отправку на e-mail, а там дальше придётся подтверждать уже через него

holypony commented 5 years ago

В последнее время скрипт отказывает запускаться с любых аккаунтов из-за 400-ой ошибки. При этом, сообщение в инстаграмме о том, я это или нет, не приходят. Приходит только уведомления на почту, вида: "Мы выявили новый вход, Device · Python Requests ".

Подскажите пожалуйста, работаете ли вы над этой проблемой? Спасибо.

OlegYurchik commented 5 years ago

Да, делаю возможность подтверждения девайса

shivaburade commented 4 years ago

I am also stuck with 400 client error, I have tried using VPN and proxies but the error does not seem to go.

beratn commented 4 years ago

@shivaburade same issue @OlegYurchik

artemetr commented 3 years ago

@OlegYurchik я бы предложил слить этот реквест https://github.com/OlegYurchik/pyInstagram/pull/86, т.к. его изменения решают данную проблему

Спасибо @antkovale