Комментарии 40
Насколько мне известно, query_id привязывается к сессии, а вы их вынесли в качестве магических констант.
Это действительно магические константы) Точнее, они требуются для того, чтобы указать, что запрашивается. Это проверено опытным путём
Очень жаль, что не все методы работают (например, получение лайков и комментариев без авторизации).
Нет, без авторизации точно можно получать комментарии, а лайки, если честно, не пробовал. Но если web-интерфейс позволяет, то и в приложении можно.
Использовал приватное api instagram, в итоге имея базу прогоняю по ним аккаунты
Проект на github github.com/hazratgs/instalator-telegram
www.webasyst.ru/store/plugin/shop/instagram
Он эмулирует телефон.
Как работал ключ, так и работает до сих пор.
когда библиотека состоит всего из одного файла
всего из 756 строк.
Может я и придираюсь, но я бы всё раскидал по разный файлам (эксепшионы, авторизация, действия)
А у инстаграма есть ограничения по запросам? И как это обходите? Например у вк 3 запроса в секунду, и нормально парсить только если сбор распределять на разные аккаунты.
А сам инстаграм не даёт никаких цифр запросы в секунду? И по опыту можете, пожалуйста, сказать сколько нужно времени (вместе с ожиданием) что бы скачать например 10000 постов?
Официально у них описано только API, и там тоже не ахти. В варианте веб версии некоторую инфу можно вытаскивать анонимно, а с API это невозможно. Если про реальные цифры, то чтобы не уйти в 429 я пробовал ставить ожидание после каждого запроса от 1 до 2 секунд. С 1 секундой он уходит в 429 ошибку, с 2 — никогда. Думаю, при таком варианте — это где-то 40-50 запросов в минуту. Так как максимум можно вытащить около 1000 запросов за раз (скорее всего, есть цифра точная, но я не ставил экспериментов пока), то на 10000 постов надо будет потратить около 3-4 часов. Это если быть авторизованным. А если вытаскивать посты без авторизации с использованием прокси — то ограничений нет. Опять же, если бы мобильное приложение или API давали лучшие результаты(
1000 постов за запрос*
Простите, я считаю, как обезьяна. 10000 постов можно вытащить максимум за полминуты, а вот получить картинку, текст и так далее каждого поста — это долго, да
Ни для кого не секрет, что самая популярная и прибыльная площадка для рекламы, бизнеса и прочего — Instagram.
Сильное заявление
Рекомендую библиотеку, которая эмулирует поведение android-приложения и позволяет делать почти всё (сейчас живые трансляции не доступны), что возможно в приложении https://github.com/mgp25/Instagram-API/.
Если вам нужен только постинг, используйте мой докер-контейнер (https://github.com/zhuharev/instagram-rest-api), который запускается как микро-сервис и позволяет (пока только) постить фото и галлереи просто rest-запросом.
Есть адаптация для ноды https://github.com/huttarichard/instagram-private-api и для питона https://github.com/danleyb2/Instagram-API
Лучше использовать оригинальную библиотеку, потому что у неё бОльшее комьюнити и библиотеку часто обновляют.
Единственный минус конечно это то что нужно следить за ключём приложения (так как в один прекрасный момент, без обновления скрипта и ключа — всё накроется).
На сколько я понял лёгкого способа изымать ключ приложения — нет.
Ну и ещё сейчас они ввели политику — «платите, или ничего не спрашивайте».
По поводу эмуляции клиента и эавторизации добавлю. Когда ты делаешь ее на сервере, который географически удален от того места, где ты обычно используешь аккаунт, авторизация не проходит. Нужно зайти в веб версию инстаграма, залогинится там и подтвердить что это был ты.
Столкнулся с этим, когда делал инстаграм клиент для часов pebble (исходники, кому интересно)
Для своей цели доработала получение линку на видеофайл если контент является видео.
if self.is_video:
self.video_url = data['video_url']
в методе Media.__setDataFromJSON__(..)
Что делать, если Instagram не дал доступ к API? Дополнение