Рубрика развивается при поддержке

Что такое прокси и как парсить интернет-магазины с их помощью для обхода защиты?

Моя компания занимается парсингом интернет-магазинов в России уже более трёх лет, ежедневно мы парсим около 400 крупнейших сайтов в РФ.

В закладки

На выходе мы просто отдаем данные в формате Excel/CSV. Но если вы вдруг захотите парсить самостоятельно, то вам точно стоит узнать больше про прокси: что это такое, зачем они, где их найти и т.п. Об этом и расскажу в данной статье.

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

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

Прежде чем говорить о прокси-серверах, нам сначала необходимо понять, что такое 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-адрес для парсинга — это снизит вашу надежность сканирования, параметры геотаргетинга и количество одновременных запросов, которые вы можете сделать.В результате вам необходимо создать пул прокси-серверов, через которые вы сможете направлять свои запросы. Таким образом, вы распределите трафик по большому количеству прокси.

Например, у нас при парсинге прокси ротируются каждые 2-3 часа порциями по 300-400 адресов.

Размер вашего прокси-пула будет зависеть от ряда факторов:

  • Количество запросов в час.
  • Целевые веб-сайты — более крупные веб-сайты с более изощренными мерами противодействия ботам потребуют большего пула прокси. Кстати, некоторые Российские сайты просто блокируют зарубежные прокси (чтобы сильно затруднить парсинг).
  • Тип 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.

Если вы поищите в Интернете "прокси сервера" - получите массу предложений. От очень дешевых до достаточно дорогих. Наш опыт говорит, что бесплатных прокси (легко найти открытые списки, которые обновляются регулярно) вполне до статочно даже для промышленного парсинга, если только вы настроите их ротацию!

Удачного парсинга :)

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Максим Кульгин", "author_type": "self", "tags": [], "comments": 8, "likes": -1, "favorites": 32, "is_advertisement": false, "subsite_label": "services", "id": 86635, "is_wide": false, "is_ugc": true, "date": "Fri, 04 Oct 2019 16:30:21 +0300", "is_special": false }
Облачная платформа
Основа для цифровизации бизнеса
Объявление на vc.ru
Трибуна
ApiX-Drive — онлайн-коннектор разных сервисов и приложений между собой без программистов
Привет, меня зовут Игорь Шамин, я основатель сервиса ApiX-Drive.
0
{ "id": 86635, "author_id": 20452, "diff_limit": 1000, "urls": {"diff":"\/comments\/86635\/get","add":"\/comments\/86635\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/86635"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 200396, "last_count_and_date": null }
8 комментариев
Популярные
По порядку
Написать комментарий...
1

Вижу Максима Кульгина сразу ставлю лайк 👍🏻👍🏻👍🏻

Ответить
0

Нещадно блочим на своих сайтах любые левые запросы. Нико не пройдёт! ) За несколько лет наш чёрный список всяческих парсеров раздулся до неприличия сильно. Если вы не мониторите свой трафик, то зря. Интересная картина рисуется.

Ответить
0

проходят :) мы проходим :) уже 4 года

Ответить
1

Так-то да. Большинство не следит, откуда приходят запросы и какие. Мы и сами иногда парсим конкурентов успешно и без прокси.

Ответить
0

Для чего парсить сайты? 

Ответить
0

Цены ассортимент конкурентов 

Ответить
0

Парсинг - это такая серая деятельность, что сюда никак нельзя прикреплять компанию.

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

Ответить
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovx", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "disable": true, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cgxmr", "p2": "gnwc" } } } ] { "page_type": "default" }