ProxyVerity Получить прокси
Руководство

Как использовать прокси для парсинга сайтов: руководство для начинающих

Почему сайты блокируют парсеры, как прокси спасают от блокировки по IP, чем резидентные прокси отличаются от датацентровых, что такое ротация и sticky, и о базовых правилах: заголовки, паузы, robots.txt.

Roman Bulatov
Эксперт по прокси и сетевой инфраструктуре · · 5 мин чтения

Почему сайты блокируют парсеры

Когда вы отправляете запросы с одного IP-адреса с высокой частотой, сервер легко понимает, что этот трафик создаёт не человек. Ограничение частоты запросов, чёрные списки IP, CAPTCHA и даже угрозы судебного преследования — обычные средства защиты. Без стратегии работы с прокси ваш парсер упрётся в стену после нескольких сотен запросов.

Основная проблема — ограничение частоты запросов по IP: в каждом запросе передаётся ваш публичный IP, и если запросов слишком много и они идут слишком быстро, сервер решает, что это злоупотребление. Прокси решают это, распределяя запросы по множеству IP: трафик выглядит естественно.

Как прокси помогают избежать блокировки по IP

Прокси находится между вашим парсером и целевым сервером. Сервер видит IP прокси, а не ваш. Переключаясь между пулом прокси, вы остаётесь ниже лимита запросов на один IP. Даже при агрессивном парсинге ни один IP не получает высокий объём запросов.

По сути прокси работают как буфер, который принимает удар на себя. Сервер видит множество разных посетителей из разных мест, и каждый делает умеренное число запросов. Заподозрить в этом бота гораздо труднее.

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

Не все прокси одинаковы. Выбор между резидентными и датацентровыми прокси зависит от чувствительности целевого сайта и вашего бюджета.

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

Список прокси по типам от ProxyVerity помогает найти проверенные прокси обоих видов.

Прокси с ротацией или sticky-прокси

Ротация определяет, как часто меняется ваш IP. Два распространённых режима:

  • Ротация — новый IP на каждый запрос (или на каждые несколько запросов). Лучше всего подходит для парсинга множества страниц одного сайта: так запросы распределяются небольшими порциями.
  • Sticky — один и тот же IP сохраняется на сессию (например, 10 минут). Полезно, когда нужно поддерживать сессию или состояние входа, например при парсинге закрытой панели после входа.

Большинство провайдеров прокси позволяют переключать ротацию. Новичкам безопаснее начинать с ротации: запрос A идёт с IP 1, запрос B — с IP 2 и так далее. Сервер не видит постоянного трафика из одного источника.

Настройка заголовков запроса и User-Agent

Прокси решают проблему IP, но серверы также проверяют заголовки запросов. Библиотека Python requests по умолчанию отправляет характерный python-requests/2.x User-Agent. Уже одного этого может хватить для блокировки.

Всегда задавайте реалистичные строки User-Agent (например, от недавней версии браузера) и имитируйте типичные заголовки вроде Accept, Accept-Language и Referer. Меняйте User-Agent вместе с IP.

“Если ваш запрос не выглядит так, будто его отправил настоящий браузер, вы уже в невыгодном положении.”

Используйте список User-Agent с ротацией, по одному на запрос. Многие библиотеки и сервисы предлагают это; даже простой список из десяти строк заметно помогает.

Добавление задержек и рандомизация

Даже с прокси и заголовками слишком частые запросы вызывают срабатывание систем поведенческого анализа. Сервер видит, что запрос приходит ровно каждые 0,5 секунды. Живые посетители так себя не ведут.

Добавляйте случайные задержки между запросами. Например, после каждой страницы ждите от 2 до 6 секунд, выбранных случайно. Это сглаживает профиль трафика и помогает не выходить за лимиты частоты запросов. При больших объёмах парсинга подумайте о вежливом обходе: один запрос в секунду с одного IP безопасен для большинства сайтов.

Этика, законность и robots.txt

Использование прокси не освобождает вас от этичного парсинга. Всегда проверяйте robots.txt сайта и условия использования. Если парсинг запрещён, соблюдайте запрет — игнорирование может обернуться судебным иском. Публичные прокси — это инфраструктура третьих лиц, часто бесплатная и без шифрования; никогда не передавайте через них чувствительные данные.

Наш бесплатный список прокси проверяется на работоспособность и скорость, но пользоваться им всё равно нужно ответственно. Парсите с разумной частотой, кешируйте, где возможно, и не перегружайте серверы.

Практический пример

Вот короткий фрагмент на Python с requests, ротацией прокси и случайной задержкой. Он загружает пример страницы товара с обычным User-Agent.

import requests
import random
import time

proxies = [
    { 'http': 'http://proxy1:port', 'https': 'http://proxy1:port' },
    { 'http': 'http://proxy2:port', 'https': 'http://proxy2:port' },
    # ... добавьте ещё из своего списка прокси
]

user_agents = [
    'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ...',
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 ...',
    # ... другие User-Agent
]

url = 'https://example.com/products'

for i in range(10):
    proxy = random.choice(proxies)
    headers = { 'User-Agent': random.choice(user_agents) }
    try:
        response = requests.get(url, proxies=proxy, headers=headers, timeout=10)
        print(f'{i+1}: {response.status_code} from {proxy["http"]}')
    except Exception as e:
        print(f'{i+1}: Error - {e}')
    time.sleep(random.uniform(2, 6))

Замените строки прокси на IP из вашего провайдера или из нашего проверенного списка прокси по местоположению. Для большей анонимности воспользуйтесь проверкой прокси, чтобы убедиться, что прокси работают и не раскрывают DNS или ваш реальный IP.

Заключение

Прокси — это лишь часть общей картины: сочетайте ротацию IP с заголовками, задержками и этичным подходом. Начинайте с малого, тщательно проверяйте и наращивайте объёмы постепенно. При правильном подходе вы сможете парсить в больших объёмах, не вызывая блокировок, — и не вредя сайтам, на которые опираетесь.