Задать вопрос

Как скачать 12 миллионов фотографий Instagram?

Всем привет.
Стоит задачи скачать фото из 12 миллионов профилей, примерно по 50 фото из каждого.
API , наверное и рассмотривать не стоит, + слышал , что доступ к нему получить проблематично.

Вопросы простые:
-Как сделать?
-Какоим инструментом?

-Кто нибудь уже имел опыт?
-Какие ограничения на API, а на http запросы?

Буду рад любому совету и опыту.
  • Вопрос задан
  • 923 просмотра
Подписаться 3 Средний 4 комментария
Решения вопроса 1
@Flying
API для Instagram получить проблематично т.к. их родной API (который был до покупки их Facebook'ом) объявлен deprecated и по факту почти не работает, а новый, через Facebook, требует кучи подтверждений, да и вряд ли Facebook будут давать массово тянуть данные через API.

Однако в случае Instagram это в целом и не надо т.к. сайт написан на React'е (и, в отличие от кучи мяса в коде Facebook'а написан очень чисто и современно), поэтому по факту сам процесс сбора данных в их случае крайне прост:
  1. Делаете запрос на страницу профиля
  2. В полученной странице ищите переменную _sharedData
  3. Разбираете её значение как JSON и достаёте нужную вам информацию, там будут первые посты со ссылками на их картинки
  4. Дальше идёте циклом про GraphSQL запросам (легко находятся через просмотр вкладки Network при скролле) и вытаскиваете остальное, данные курсора для интерации находятся в end_cursor.

При запросе к GraphQL API нужно учесть одну особенность. Сейчас Instagram требует "подписи" запросов, делается это примерно так:
headers.set('X-Instagram-GIS', md5(`${(window._sharedData || {}).rhx_gis}:${JSON.stringify(vard)}`));

Переменная vars, передаваемая в JSON.stringify() - это содержимое поля variables из GraphQL запроса.

Сам Instagram не банит за постоянные запросы, но если начинать наглеть - то включает throttling, начиная отдавать HTTP 429 в течении какого-то времени (до 5-10 минут), после чего всё движется дальше. Таким образом распараллеливание + прокси решают задачу довольно эффективно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
Scrapinghub
либо самому париться с прокси

ограничения будут по частоте запросов и по количеству, примерно 5000 на IP, но поищите лучше https://toster.ru/user/opium - он в Инсте дока
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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