Здравствуйте. Если это сообщение будет в рамках этого чата оффтопом, то извините, я действительно не знаю, куда обращаться, так как ранее с такой проблемой не сталкивался. в общем, я пишу веб-сайт, который позволяет следить за историями в Instagram. История — фото или видео, которое исчезает, если его удалить или оно автоматически исчезнет через 24 часа. Я попытался найти такой метод, чтобы можно было получать уведомления о новых историях, но у меня не получилось. У Instagram есть возможность получать уведомления о новых историях, но она не работет, если в истории не упомянуть пользователя. Соответственно, этот способ сразу же отметается. Второй способ — использовать закрытый API, который используется в приложении для мобильных устройств. Истории можно получать сразу нескольких пользователей. Это очень хорошо, однако, возникает пара проблем:
1) Если довольно часто (раз в 5 секунд) делать такой запрос, то чисто в теории Instagram может заблокировать аккаунт за подозрительную активность. Пока такого не было, но Instagram с лёгкостью может отследить, что какой-то клиент делает слишком много однотипных запросов в секунду. Кстати, почему именно один запрос раз в 5 секунд? Ответ прост — пользователь может удалить историю, так что если проверять истории раз в 5 минут, то какие-то истории могут потеряться. Да и назревает проблема расширяемости — что, если нужно следить за 300 пользователей? придётся делать несколько запросов (допустим, максимум можно получить истории у 50 пользователей, тогда надо будет делать 6 запросов), так что это плохо расширяется. Можно, конечно, прокси использовать с другим аккаунтом, но проблема того, что это выглядит подозрительно, остаётся.
Третий способ — можно получить общую информацию об одном пользователе, из которой можно узнать, когда была выложена последняя история. Таким образом, если это время изменилось, то надо получать истории. Этот способ хуже по сравнению с предыдущим, потому что информацию можно получить за один запрос только об одном пользователе.
Четвёртый способ — подписаться на соответствующие аккаунты и получать ленту (один запрос). Да, так можно сделать, однако, есть пользователи, которые банят левые аккаунты, так что вариант с подпиской сразу же отметается.
По итогу остаются два варианта, в котором одинаковый принцип: создать много аккаунтов, с разных IP-адресов делать запросы. Таким образом получится распределить нагрузку по аккаунтам так, что это не будет подозрительно. Правда, на создание аккаунтов придётся немало потратиться, но не суть.
Два вопроса:
1) Исходя из вышеописанной проблемы и способ её решения, как бы вы решили эту проблему?
2) Если создавать много аккаунтов, то лучше для них использовать прокси или что-то другое? (Честно, я слаб в этих ваших распределённых системах. Да, наверное, это даже не является распределённой системой. Я не знаю, можно ли сделать так, что есть основной сервер, который общается с многими более маленькими серверами (получать запрос на получение информации о пользователе от основного сервера, получение информации, выдача этой информации обратно основному серверу — это потребляет не так много ресурсов, поэтому я назвал этот сервер маленьким). Я не знаю терминологию, вообще не разбираюсь в этих вещах, так что сразу хочу попросить прощения за этот текст)