Парсинг с прокси

Полный справочник по использованию прокси-серверов для веб-парсинга

Все, что вам нужно знать при выборе прокси-серверов для проекта! Если вы когда-нибудь всерьез занимались парсингом, вы быстро осознавали, что прокси-сервера являются одним из ключевых компонентов любого веб-парсинга. В парсинг-проекте с серьезными объемами данных прокси-сервер — это не рекомендация, а необходимость. Тем не менее иногда, на настройку и устранение возникающих c сервером неполадок уходит больше времени, чем на создание и ведение самих парсеров. В этом руководстве мы разберем отличия между основными параметрами прокси и дадим вам информацию, которую необходимо учитывать при выборе прокси-сервера для проекта или бизнеса.

Что такое прокси-сервера и зачем они нужны при парсинге?

Прежде чем говорить о прокси-серверах, нам сначала необходимо понять, что такое IP-адреса и как они работают. IP-адрес — это набор чисел, который присваивается любому устройству, подключенному к Internet Protocol, например, к интернету, что дает каждому устройству уникальный идентификатор. Большинство IP-адресов выглядят так: 207.148.1.212 Прокси — сервер-посредник, который маршрутизирует через себя ваш трафик и заменяет ваш IP-адрес на свой. Когда вы отправляете сайту запрос через прокси, сайт не видит ваш IP, он видит только IP-адрес прокси-сервера, что дает вам возможность анонимно просматривать (или парсить) веб-страницы. Сейчас весь мир постепенно переходит от стандарта IPv4 к новому стандарту IPv6. Новая версия протокола позволяет создавать больше IP-адресов. Однако в прокси-бизнесе IPv6 пока не так уж и важен, поэтому большинство IP-адресов все еще используют стандарт IPv4. При парсинге веб-сайта через прокси рекомендуется (но редко кто этому следует на практике) указывать название своей компании в качестве пользовательского агента (user agent), чтобы владелец веб-сайта мог связаться с вами, если ваш парсер перегружает их сервера или если он не хочет, чтобы вы парсили данные с его сайта. Существует ряд причин, по которым важно использовать прокси при парсинге:
  • Прокси (особенно пул прокси-серверов — подробнее об этом позже) позволяет намного надежнее сканировать веб-сайт, значительно уменьшая вероятность того, что ваш сканер забанят или заблокируют.
  • Используя прокси, можно отправлять запросы из определенного географического региона или устройства (например, с мобильных IP-адресов), что позволяет просматривать конкретный контент, отображаемый на веб-сайте для данного местоположения или устройства. Это имеет огромное значение при сборе данных о товарах в интернет-магазинах.
  • Используя пул прокси-серверов, можно, не опасаясь блокировки, отправлять больший объем запросов на целевой веб-сайт.
  • Прокси-сервер позволяет обойти общие запреты IP, навязываемые некоторыми веб-сайтами. Пример: веб-сайты часто блокируют запросы от AWS, поскольку есть информация о том, что некоторые злоумышленники перегружают веб-сайты большими объемами запросов с использованием серверов от Amazon.
  • Подключаясь через прокси-сервер, можно проводить неограниченное количество одновременных сеансов на одном и том же или разных сайтах.

Зачем использовать прокси-пул?

Хорошо, мы разобрались, что такое прокси-сервера, но как применять их при парсинге? Если при парсинге вы пользуетесь только одним прокси-сервером, то это аналогично тому, как если бы вы использовали только собственный IP-адрес для парсинга — это снизит вашу надежность сканирования, параметры геотаргетинга и количество одновременных запросов, которые вы можете сделать. В результате вам необходимо создать пул прокси-серверов, через которые вы сможете направлять свои запросы. Таким образом, вы распределите трафик по большому количеству прокси. Размер вашего прокси-пула будет зависеть от ряда факторов:
  • Количество запросов в час.
  • Целевые веб-сайты — более крупные веб-сайты с более изощренными мерами противодействия ботам потребуют большего пула прокси.
  • Тип IP-адресов, который вы используете в качестве прокси-серверов: ЦОД, домашний или мобильный IP-адрес.
  • Качество IP-адресов, которые вы используете в качестве прокси — это публичные прокси, общие или частные выделенные прокси? Являются ли они ЦОДами, жилыми или мобильными IP-адресами? (IP-адреса ЦОДов, как правило, имеют более низкое качество, чем IP-адреса для домашних и мобильных устройств, но зачастую они более стабильны, чем IP-адреса для жилых/мобильных систем из-за характера сети).
  • Сложность вашей системы управления прокси — ротация прокси, регулирование трафика, управление сеансами и т. д.
Все эти пять факторов оказывают большое влияние на эффективность вашего прокси-пула. Если вы неправильно настроили пул прокси-серверов для своего проекта, то с большой вероятностью вы обнаружите, что ваши прокси-серверы заблокированы, и вы больше не можете получить доступ к целевому веб-сайту. В следующем разделе мы рассмотрим различные типы IP-адресов, которые вы можете использовать в качестве прокси.

Какие существуют варианты прокси?

Если вы хоть немного изучали существующие варианты прокси-серверов, то, вероятно, поняли, что это весьма запутанная тема. Каждый разработчик прокси-сервиса заявляет во всеуслышание, что у него лучшие прокси-IP во всём интернете, но мало кто объясняет, почему это так. Из-за этого сложно определить, какой прокси-сервис является лучшим для конкретно вашего проекта.
  • IP Центров обработки данных. IP-адреса ЦОДов — наиболее распространенный тип прокси-IP. Это IP-адреса серверов, размещенных в центрах обработки данных. Такие IP-адреса являются наиболее распространенными и дешевыми для покупки. При грамотном выборе прокси вы можете построить надежный парсер для вашего бизнеса.
  • Резидентские IP. Резидентские IP — это IP-адреса частных жилых домов, позволяющие направлять ваши запросы через “домашнюю сеть”. Такие IP-адреса сложнее получить, что делает их существенно дороже серверных. В большинстве случаев серверные IP-адреса полностью справляются с задачей. Использование резидентских IP автоматически поднимает правовые вопросы / проблемы с согласием из-за того, что вы используете личную сеть людей для парсинга.
  • Мобильные IP. Мобильные IP-адреса — это IP-адреса частных мобильных устройств. Как вы можете догадаться, получить IP-адреса мобильных устройств довольно трудно, что делает их самыми дорогими в нашем списке. Для большинства проектов веб-парсинга мобильные IP-адреса излишни, если только вы не хотите анализировать результаты, показанные пользователям мобильных устройств. Но самое важное то, что они поднимают еще более сложные юридические вопросы/проблемы с разрешением, так как часто владелец устройства до конца не осознает, что вы используете для парсинга их сеть GSM.

Публичные, общие или выделенные прокси?

Ещё один вопрос, который стоит обсудить — какие прокси использовать: публичные, общие или выделенные? От публичных (или так называемых «открытых») прокси следует держаться подальше. У таких прокси низкое качество соединения, и они могут представлять для вас реальную опасность. Эти прокси открыты для свободного подключения, поэтому через них проходит большое количество сомнительных запросов, что неизбежно ведет к попаданию в черные списки и блокировкам на сайтах. Самое плохое в них то, что эти прокси часто бывают заражены вредоносными программами. Если вы не настроили вашу безопасность должным образом (используя SSL-сертификаты и т.д.), то при использовании публичного прокси-сервера вы рискуете распространить существующее вредоносное ПО, заразить ваши собственные компьютеры и даже придать огласке ваши действия по парсингу сайтов. Выбор между общими или выделенными прокси немного сложнее. В зависимости от масштаба вашего проекта, ваших потребностей в производительности и бюджета, вам может быть достаточно платной подписки на доступ к общему пулу IP-адресов. Однако, если вам позволяет бюджет и важна производительность, то лучше заплатить за выделенный пул прокси. Итак, теперь у вас есть неплохое представление о том, что такое прокси и какие плюсы и минусы у разных типов IP-адресов прокси-серверов. Но выбор правильного прокси сервера — это вершина айсберга, самая сложная задача заключается же в управлении про

Как управлять вашим прокси-пулом?

Если вы планируете парсить в промышленном масштабе в долгосрочной перспективе, то недостаточно просто купить пул прокси IP-адресов и маршрутизировать через них свои запросы к сайту. Ваши прокси неизбежно будут заблокированы и перестанут возвращать высококачественные данные. Итак, что вас ждет:
  • Обнаружение блокировок — ваш прокси-сервис должен быть в состоянии обнаружить многочисленные типы запретов, чтобы можно было своевременно выявить и устранить основную проблему — например: капчи, переадресации, блокировки, гостинг (полную остановку коммуникаций со стороны сервера) и т.д. Повторные запросы — если ваши прокси-серверы столкнулись с ошибками, блокировками, тайм-аутами и т.д., они должны иметь возможность повторить запрос через другие прокси.
  • User Agent — управление этим показателем имеет решающее значение для успешного парсинга.
  • Управление прокси-сервером — иногда при парсинге требуется, чтобы вы вели сеанс подключения через один и тот же прокси-сервер, для этого вам необходимо дополнительно настроить свой пул прокси.
  • Добавить задержки — чтобы скрыть факт парсинга, рандомизируйте задержки при отправке запросов и “кликах”.
  • Геотаргетинг — иногда требуется настроить пул таким образом, чтобы для определённых сайтов использовались определенные прокси.
Управлять пулом из 5-10 прокси несложно, но если у вас 100 или 1000 прокси, то вся сеть может быстро развалиться. Чтобы избежать таких проблем, у вас есть три основных решения: «Сделай сам», «Ротаторы прокси» и «Всё для вас».

“Сделай сам”

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

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

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

“Все для вас”

Окончательное решение — полностью передать управление прокси-сервером на аутсорсинг. Такие решения, как Crawlera, разработаны как интеллектуальные загрузчики, где ваши парсеры просто запрашивают его API, и он вернет вам необходимые данные. Управление всеми функциями ротации, регулировки, обработка черных списков, управление сеансами и т. д. — вам не нужно будет на это отвлекаться. Каждый из этих вариантов имеет свои плюсы и минусы, поэтому выбор лучшего решения будет зависеть от ваших конкретных приоритетов и ограничений.

Как выбрать лучший прокси-сервер для своего проекта?

Выбор подхода к созданию и управлению пулом может быть головной болью. В этом разделе мы опишем некоторые вопросы, которые вам нужно задать себе при выборе наилучшего прокси-решения для ваших задач:
  • Какой у вас бюджет? Если ваш бюджет ограничен или его практически нет, то управление собственным прокси-сервером будет самым дешевым вариантом. Однако если у вас даже небольшой бюджет в 20 долларов в месяц, то вам следует серьезно подумать о передаче управления прокси-серверами выделенному решению, которое управляет всем.
  • Что для вас важно? Если изучение прокси-серверов и всего, что связано с парсингом, является вашим приоритетом № 1, то, вероятно, лучшим вариантом будет покупка собственного прокси-сервера и управление им самостоятельно. Однако если, как и для большинства компаний, для вас на первом месте стоит получение нужных данных и достижение максимальной производительности парсинга, то лучше воспользоваться комплексным решением. Или, по крайней мере, использовать ротатор прокси.
  • Каковы ваши технические навыки и доступные ресурсы? Для управления собственным пулом прокси-серверов даже при средних объемах парсинга, вам потребуется как минимум базовый уровень знаний в области разработки программного обеспечения и широкая пропускная способность для постройки и поддержки логики управления прокси-серверами вашего парсера. Если у вас нет такого опыта или нет технических возможностей для обеспечения пропускания необходимого объема трафика, вам лучше использовать прокси-ротатор и создать собственную инфраструктуру управления прокси-сервером, либо использовать готовое решение для управления пулом.
Ответы на эти вопросы помогут вам быстро определить, какой подход к управлению прокси-сервером наилучшим образом соответствует вашим потребностям.

Сделать самому, или воспользоваться решением, сделанным для вас?

Как уже было сказано выше, если вы больше сосредоточены на изучении с нуля всего, что связано с парсингом, или у вас очень ограниченный бюджет, то, вероятно, лучшим выбором будет покупка доступа к общему пулу IP-адресов и самостоятельное управление логикой работы прокси-сервера. “Ротация прокси” – как уже говорилось ранее, если вы хотите действовать самостоятельно, то рекомендуем вам использовать поставщика прокси, который предоставляет услугу ротации IP-адресов. Это избавит вас от базовых задач по управлению серверами. Однако вам все равно придется заниматься управлением сеансами подключения, регулировкой запросов, черным списком IP-адресов и выявлением причин бана. “Все для вас” – другой подход заключается в использовании интеллектуальных алгоритмов для автоматического управления вашими прокси. В таком случае можно получить достоверные данные, пользуясь специализированными решениями по управлению прокси-серверами, которые управляют ротацией, регулированием трафика и выбором IP-адресов ЦОДов, и не тратиться на дорогие частные и мобильные IP-адреса.

Правовые аспекты при использовании прокси во время парсинга

На данном этапе у вас должно быть хорошее представление о том, что такое прокси-серверы и как выбрать лучший вариант для вашего веб-проекта. Тем не менее, есть один аспект, который многие люди упускают из виду, когда речь заходит о парсинге и прокси, — это юридический аспект. Использование прокси-IP-адреса для посещения веб-сайта законно, однако, необходимо помнить о нескольких моментах, чтобы не попасть в серую зону. Наличие надежного прокси-решения похоже на обладание суперсилой, однако оно может сделать вас беспечным. Имея возможность отправлять огромное количество запросов на веб-сайт, оставаясь анонимными, люди начнут этим злоупотреблять и перегружать серверы веб-сайта слишком большим количеством запросов. Что, естественно, делать не стоит. Если вы используете парсер, то вы всегда должны с уважением относиться к веб-сайтам, которые вы сканируете. Независимо от масштаба или сложности вашего проекта, вы всегда должны следовать рекомендациям по парсингу веб-страниц (Скоро выйдет руководство по использованию парсеров) и следить, чтобы ваши боты не перегружали веб-сайты. Кроме того, если веб-сайт информирует вас (или сообщает прокси-провайдеру) о том, что ваш парсер мешает работе сайта или парсинг сайта нежелателен, вы должны ограничить количество запросов или прекратить сканирование. Пока вы соблюдаете правила, вероятность того, что вы столкнетесь с какими-либо юридическими проблемами, гораздо ниже. Как упомянуто в нашем Руководстве по веб-парсерам для GDPR, есть еще один важный юридический вопрос, касающийся использования домашних или мобильных IP-адресов: а есть ли у вас явное согласие их владельцев на использование этих адресов для парсинга веб-страниц? Поскольку GDPR определяет IP-адреса как информацию, позволяющую установить личность, вам необходимо убедиться, что все IP-адреса ЕС, которые вы используете в качестве прокси-серверов, соответствуют GDPR. Это означает, что вам нужно убедиться, что владелец этого IP-адреса дал свое явное согласие на использование своего домашнего или мобильного IP-адреса в качестве прокси-сервера для парсинга. Если у вас есть собственный IP-адрес, то вам нужно будет самостоятельно обработать это согласие. Однако если вы получаете прокси от стороннего поставщика, то прежде чем использовать их для парсинга, вам необходимо убедиться, что у него есть такое согласие и оно соответствуют GDPR.