Что нужно сделать для того, чтобы на стороннем сервере не заблокировали, если я оттуда граблю данные?

Есть некий известный сайт, который не предоставляет публичного API, но его фронт делает раз в несколько секунд ajax запросы к серверу, поддерживая таким образом актуальность данных.

В заголовках ничего связанного с CORS нет, поэтому можно просто cURL'oм делать запросы к этому серверу и получать нужные данные.

Но мне очень сильно кажется, что если я запущу на своем сервере приложение, которое будет круглосуточно делать определенное количество запросов, то IP моего сервера забанят, и я останусь ни с чем.

Вопрос: что можно сделать для того, чтобы избежать блокировки в будущем?

Мои мысли по этому поводу:
1. Собрать массив с 50 (например) разных User-Agent's и при каждом запросе подставлять в заголовок некий случайный элемент из массива. Таким образом будет проще "затеряться в толпе".
2. Купить пул IP адресов, и случайным образом делать запросы через них. Насколько я понимаю, для решения подобных задач придумали Proxy-сервера.
Если я куплю пакет IP-шников, например тут ( proxywhite.com ) что мне с ними делать дальше? Интересует именно техническая сторона вопроса?
Есть ли какие-то готовые решения для привязки пула IP к веб-серверу работающему на NodeJS?

Спасибо!
  • Вопрос задан
  • 295 просмотров
Решения вопроса 1
JorryGo
@JorryGo
Backend разработчик
Первым делом я бы протестировал на другом сервере, а действительно ли будет забанен ip при большом кол-ве запросов. Такое встречается не так уж и часто.
Подмена user-agent вряд ли поможет.
Остается два варианта - или ограничить частоту запросов (Например 1 в секунду) или через прокси.
Как вариант сделать так - имеем массив с прокси и или достаем информацию через них подключаясь к ним по очереди, или достаем информацию асинхронно, где каждый запрос на отдельном прокси имеет паузу в пару секунд.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Dennes
@Dennes
1) помимо заголовка user-agent, ваша "цель" так-же может определять ботов по другим параметрам (включенный flash, js, web-rtc и т.д.). Воспользуйтесь сниффером, чтобы узнать какие данные "тянет" сайт с клиента
2) Вы мыслете в правильную сторону. Не думаю что в вашем случае, обязательно пользоваться платными прокси - публично-доступных будет достаточно
Ответ написан
@DoctorGata
Есть прокси-провайдер резидентных прокси. Пул IP - 10 миллионов, 190+ стран.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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