Ротация прокси при парсинге сайтов

Как и зачем проводить ротацию IP при парсинге. Пишем набросок код на Python.

Ротация прокси

Прокси - это промежуточный сервер между пользователем и веб-сайтом, который позволяет анонимно подключаться к веб-страницам. Почему так важно проводить ротация прокси? Что такого особенного в ротации прокси? Далее мы дадим ответы на эти вопросы.


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


Ротация прокси похожа на сезонную смену вашего гардероба. Основная задача - поменять ваш IP-адрес.

Ротация IP

Грубо можно сказать, что IP-адрес в Интернет - это ваша личность. Можно делать только ограниченное количество запросов на веб-сайт с вашим IP-адресом. Думайте о веб-сайтах как о полицейских. Они с подозрением относятся к запросам, постоянно поступающим с одного и того же IP-адреса. Это явление также называют "ограничением скорости IP". Ограничения скорости IP, применяемые веб-сайтами, могут привести к блокировке, дросселированию или CAPTCHA. Так как же нам это преодолеть?


Остановитесь и подумайте сейчас о том, как вы будете парсить сайт без беспокойства о блокировки? Я почти уверен, что вы можете ответить на это сами. Если менять свой IP-адрес в Интернете по каждому запросу или через определенный период, то возможность блокировки снижается многократно.


Прокси с ротацией похожи на вращающийся шкаф. Ротационные прокси-серверы производят замену вашего IP-адреса на новый IP-адрес из пула прокси. Этот выбор является случайным, если не указано иное, и происходит автоматически с каждым запросом на подключение.

Как выбрать прокси с ротацией для парсера

Есть три варианта ротационных прокси на выбор. Критерии отбора зависят от требований проекта и бюджета.


  1. Прокси с ротацией центра обработки данных.
  2. Ротационные резидентские прокси.
  3. Мобильные прокси с ротацией.

Прокси с ротацией центра обработки данных

Ротационные прокси центра обработки данных поступают от поставщиков облачных услуг. Прокси центра обработки данных обычно представляют собой общий пул прокси. Многие пользователи используют этот общий пул одновременно. Общий пул легче обнаружить и, следовательно, часто менее подходит для задач парсинга веб-страниц.


Выделенные прокси - это эксклюзивные прокси, используемые одним пользователем одновременно. Выделенные вращающиеся прокси-серверы центров обработки данных часто более подходят в веб-проектах по двум причинам:


  1. Отличный пользовательский опыт
  2. Бюджетный

Ротационные резидентские прокси

Происхождение жилых прокси делает их наиболее подходящими для веб-проектов по парсингу. Они используют IP-адрес устройства, такого как iPad, ноутбука и т. д., чтобы сделать его более похожим на обычного реального пользователя для веб-сайтов. Но они значительно дороже, чем прокси-серверы центров обработки данных.

Мобильные прокси с ротацией

Мобильные прокси с ротацией - это прокси с лучшей IP-репутацией - их трудно обнаружить, так как они принадлежат мобильным пользователям, подключенным к 4G/3G/LTE. Мобильный телефон, подключенный к сети Wi-Fi, будет походить на реального человека. Достаточно дорогой вариант для парсинга.

Важно понимать...

Проводить ротацию прокси нужно не всегда. Например, в некоторых сценариях когда нужно обращаться к сайту от имени одной и той же личности или производить парсинг после авторизации. Так как сайт будет проверять вас при помощи сеансовых файлов cookie. Чтобы сохранить состояние входа в систему, вам нужно продолжать передавать идентификатор сеанса в заголовках файлов cookie. Серверы могут легко определить, что вы бот, когда один и тот же сеансовый файл cookie поступает с нескольких IP-адресов, и заблокировать вас.


В таких ситуациях лучше просто использовать один IP-адрес и поддерживать одни и те же заголовки запросов для каждого уникального входа в систему.

Пишем код ротации IP-адресов на Рython

Вот небольшой фрагмент кода, чтобы продемонстрировать случайную ротацию вашего IP-адреса с помощью Python.

import random
import requests

proxy_pool = ["291.15.40.79:53275", "12.56.13.29:34754", "152.312.106.297:443", "510.110.11.229:7777"]
URL = 'https://site.ru/page'

while len(proxy_pool)>0:
	random_proxy_list = random.sample(proxy_pool, k=1)
	random_proxy = {
		'http': 'http://' + random_proxy_list[0],
	}
	response = requests.get(URL, proxies=random_proxy)
	print(response.json())
	proxy_pool.remove(random_proxy_list[0])

Избегайте использования прокси-адресов, которые имеют последовательность. На веб-сайтах есть интеллектуальные плагины для защиты от парсинга. Эти плагины могут определить, поступают ли запросы от человеческой деятельности или бота. Поэтому лучше не использовать последовательные IP-адреса, которые принадлежат одному и тому же диапазону

256.321.0.1, 256.321.0.2, 256.321.0.3, ...

Нужен парсинг сайтов?