Каждый более или менее крупный сайт хоть раз, но пытались атаковать. Такое было и с нашим сервисом Rusprofile, люди пытались спарсить финансовые и юридические данные о компаниях, которые мы агрегируем у себя последние 5 лет. Поэтому наша команда написала неплохую систему защиты с несколькими эшелонами проверок. В этот Новый год случилась DDoS-атака, которую наша система смогла отбить меньше чем за час. Сегодня расскажем, почему другим нужны ваши данные и можно ли защититься от подобных атак (спойлер: можно).
Мы в Rusprofile занимаемся тем, что собираем в различных источниках данные обо всех компаниях в России и выводим их в удобном интерфейсе. Сервисом регулярно пользуются сотрудники отделов закупок, бухгалтеры, юристы и все, кому нужно узнать о какой-либо фирме сразу всё, в одном месте. К сожалению, наличие большого количества тщательно собранного контента (а мы обновляем базу ежедневно) привлекает желающих это украсть.
Зачем кому-то воровать контент и почему просто нельзя сделать свою базу данных
До этого года у нас была простая модель монетизации. Вся прибыль шла от рекламы, а трафик — из поисковых систем. Более 4 лет мы показывали все данные бесплатно, открыто и полностью. И разумеется, были желающие эти данные получить в готовом виде, чтобы сделать подобную систему и тоже зарабатывать на рекламе. Проще скопировать, чем самим собирать данные из десятков источников, анализировать, сопоставлять и разбирать. Не будем раскрывать имён, но все попытки забрать контент были исключительно ради денег. Даже самое простое проксирование сайта могло дать человеку заработать немного на трафике, который должен идти к нам. Некоторые одновременно проксировали сайт и пытались спарсить данные, а иногда даже копировали наш дизайн. Порой воры были более изобретательны, и хотя бы сайт делали свой. Сейчас практически все эти сайты мертвы.
Основная причина для атак и попыток скопировать всё — это контент. Бесплатная дата, которую можно отдавать аудитории и зарабатывать деньги на рекламе. На самом деле, мы бы не узнали о большинстве попыток (даже успешных) скопировать сайт, но это мешает, т.к. нагрузка вырастает аномально. Люди пытаются вытащить всё и сразу, накидываются в сотни потоков, и, соответственно, начинают страдать наши пользователи. Сайт тормозит и не успевает обрабатывать и реальные запросы, и попытки скопировать все его страницы, которых более 100 миллионов на текущий день.
К сожалению, защититься в полной мере, чтобы вообще никто и ничего не смог скачать с сайта, практически невозможно. Но можно сделать этот процесс невыгодным для злоумышленников. У нас ушёл год исследований и улучшений систем, чтобы закрыть возможность парсить нашу базу целиком. Это помогло избавиться от нескольких зеркальных проектов, которые зарабатывали на нашем труде.
"Но ведь можно взять все источники и точно так же скачать оттуда данные?" резонно спросите вы. Конечно, можно. Более того, мы и не скрываем, откуда берём информацию. Любой может на сайте зайти в раздел Источники данных и увидеть, где мы всё собираем. Их там около полусотни. К сожалению, для любителей быстрого заработка, недостаточно просто знать эти источники. Мы провели много времени, чтобы правильно настроить интеграции, разбор и обработку данных. И в пересчёте на стоимость человеко-часов, конечно, это уже миллионы рублей. Поэтому никому не интересно строить подобную систему, проще украсть уже готовые структурированные данные и перепродать их.
Fail2ban — первый шаг, чтобы отсечь мошенников
Когда нагрузка на проект от ботов стала большой, возникла задача отсечь их. Как вообще работает парсер? Самый простой вариант — пишется какой-то простенький скрипт, который дёргает страницы и каким-то образом их разбирает, но это уже не наше дело. Нас волнует только то, что кто-то постоянно стучится в наш сервер. В этом случае мы видим массу запросов с одного IP-адреса и, естественно, можем это элементарно ликвидировать. Просто баним этот IP, используя автоматизированное решение.
К сожалению, количество таких парсеров обратно пропорционально сложности решения. Значит, львиную долю нежелательных запросов создают странные люди, которые просто запускают скрипт на своём компьютере. Были даже автоматизированные решения, которые продавались на форумах. Они умели сразу работать с Excel, куда складывались данные. Естественно, у этих парсеров был IP компьютера, на котором запускался этот скрипт, ну а дальше уже всё понятно.
Первое, что мы сделали — начали отключать около 80% script kiddies. Просто банили по IP тех, кто слишком много хотел. Это классическая схема, техническое решение давно известно: Fail2ban, который анализирует логи и при превышении определённого порога запросов за определённое время IP-адрес улетает в бан. Большая часть доморощенных хакеров отвалилась, но были те, кто пошёл дальше. Они стали заходить не с одного IP адреса, а через наборы прокси — 1000, 10000, 100000 — и дёргать нас с каждого адреса по чуть-чуть. Дальше нужно было решать проблему иначе.
Как ограничить парсинг, не усложняя жизнь пользователям
Одно из самых важных свойств Rusprofile — обновление. Дело в том, что данные об организациях постоянно меняются. Кто-то закрывается, кто-то открывается, меняются реквизиты, учредители, юридический адрес. Регулярно проходят тендеры, суды и прочее. И ценность в том, чтобы предоставлять только актуальные данные. Объем обновления огромный. За сутки собираются несколько десятков гигабайт. Затем это обрабатывается и в более компактном виде хранится уже в нашей базе. И на следующий день всё заново. Поэтому сперва мы решили разрешить нас парсить, но… с такой скоростью, чтобы не успевать за обновлениями. То есть, данные у злоумышленников были неактуальными, а значит, ценности не представляли. Как только скорость парсинга падает меньше скорости, с которой мы обновляем данные, для бизнеса (если воровство контента можно назвать бизнесом) это становится бессмысленно, т.к. данные всегда будут устаревшие.
Мы стали применять для этого поведенческий анализ. У реального пользователя есть определённый профиль запросов (как и что он делает, насколько часто). Конечно, активность варьируется в широких пределах. Иногда бывают люди, которые работают в нескольких окнах, открывают ссылки десятками. Но мы видим, откуда человек пришёл, понимаем, что он мог нажать на несколько ссылок из поиска и открыть их в новых вкладках. Парсеры же сильно отличаются как по количеству запросов, так и по профилю. Обычно человек через браузер загружает сайт целиком, со всеми стилями, картинками, динамическими элементами, JavaScript и всем прочим. Бот дёргает только HTML с данными. Это достаточно легко отсекается. Но со временем мы заметили, что как только мы отключаем юзера по признаку невзятия статики, боты начинают заходить с headless-браузеров и загружать всё целиком, как живые пользователи. Но это очень невыгодно, т.к. процесс существенно усложняется и начинает требовать больше ресурсов, плюс нужно выполнять все действия со скоростью человека, а не робота.
Так что сам парсинг принципиально не изменился, но увеличилось количество вложений. Соответственно, отвалилось большое количество самых примитивных парсеров. Когда мы перешли на модель SaaS, у нас упал трафик примерно на 12-15%, в основном за счёт подобных скриптов. С меньшим количеством нагрузки на сервер мы стали зарабатывать больше денег, потому что отвалились паразитные запросы. У нас остался поток в районе 20-30 RPS (запросов в секунду) от разнообразных парсеров. Но 20-30 запросов — это мелочи, а вот когда их тысячи...
Всё это время у нас была классическая война копья и щита. Мы придумываем что-то новое, разработчики парсеров реагируют и находят решения, как это обойти. Мы придумываем более изощрённый вариант отключать потоки, они снова обновляют алгоритм. В конечном итоге мы пришли к тому, чтобы делать их бизнес максимально невыгодным. Нас по-прежнему можно парсить, но этот процесс настолько сложный, что никакой коммерчески выгодной информации в разумные сроки от нас не получить. В принципе, это равносильно тому, что живой человек зайдёт и попытается скачать руками десятки тысяч страниц. Вряд ли он успеет это за 1 день, пока не обновились данные.
Дополнительные методы отслеживания и блокировок
Поведенческие факторы позволяют отсечь большинство паразитных запросов. Но что делать, если реальный пользователь упрётся в лимиты для роботов? Такое, увы, иногда случается. Например, пользователь сильно меняет своё поведение: раньше он открывал от силы 10 страниц в день, а тут внезапно открыл 50 в разных окнах. Конечно, мы не блокируем его сразу. Юзеру покажется Google CAPTCHA, у которой есть интересный режим теневой капчи.
Shadow captcha проверят браузер пользователя с точки зрения его схожести с ботом. Это происходит на стороне Google, у них очень большие возможности для этого. Благодаря проникновению и огромной базе знаний, Google анализирует множество факторов, которые нам недоступны. Грубо говоря, сервис оценивает, насколько это потенциально бот и выдаёт рейтинг от 0 до 1. У нас настроен порог, что если посетитель условно “робот” и его рейтинг меньше 0.4, то он улетает в бан. Если выше, то юзер продолжает работать, пока не станет нарушать с большей интенсивностью.
Помимо Google Shadow captcha, есть и явная Captcha. Если у человека хороший рейтинг, но мы считаем поведение подозрительным, то нужно будет пройти тест на робота. Но происходит это только при очень серьёзном выходе за нормативные параметры, поэтому реальные пользователи видят капчу в единичных случаях. Раньше, впрочем, тест выводился при малейшем подозрении и мы получали много жалоб от юзеров. Забавно, что парсеры тоже писали в саппорт и просили их разбанить. Но здесь социальная инженерия не срабатывает, т.к. на нашей стороне данные и мы всегда можем детально проверить, как вёл себя тот или иной пользователь.
Кроме этого, мы применили обфускацию. Анализ поведения парсеров показал, что люди запускают скрипты с сотен тысяч прокси, и забывают про них на несколько дней или даже недель. Поэтому мы решили выдавать некорректные данные. Как только юзер определяется как злоумышленник, данные ему не перестают поступать (ведь иначе парсер об этом узнает и что-то сделает), но цифры меняются местами и больше не представляют никакой ценности, хотя злоумышленник думает, что всё хорошо. Но юзеру с нормальным браузером мы такое, конечно, не отдаём. Живой пользователь на этом месте получает капчу, и не может продолжать работу, пока её не пройдёт. Игнорирующий ввод кода бот будет продолжать получать мусорные данные Это тоже нужно, чтобы увеличить затраты на парсинг. Парсер может поработать неделю, отчитаться, что всё собрал (ошибки в цифрах мало заметны несведущему человеку), но на выходе будет лишь мусор. Продать эти данные невозможно, время уже упущено, убытки и в деньгах, и в репутации.
Когда спарсить не получилось, в ход идёт DDoS
Как таковой DDoS, в общем-то, никому не интересен. Это дорогая затея и по деньгам, и по ресурсам. Кроме того, атака в чистом виде не имеет смысла, особенно с Rusprofile. В других рынках бывает практика, когда на пике продаж, например, перед Новым годом, атакуются сайты конкурентов. Но у нас нет пика сезона, а все конкуренты — крупные компании с хорошей репутацией, которые поступать так не будут. Парсерам же это вдвойне невыгодно, т.к. они потеряют доступ к данным, которые пытаются скачать. Но иногда бывают мстительные “хакеры”.
Перед Новым 2021 годом на сервер случилась DDoS-атака и мы не знаем достоверно, что стало причиной. Возможно, это была обида одного из парсеров, которому нас "заказали", а мы отдали ему перемешанные данные и он просто решил отомстить. Причина тогда была не особо важна. Мы фильтровали десятки тысяч запросов в секунду и не сразу смогли это остановить.
От DDoS, по большому счёту, защиты нет. Если есть достаточное количество денег, то можно успешно атаковать хоть Google, хоть Amazon. Что уж говорить о сайте довольно узконаправленного проекта, который умещается в одной серверной стойке. Меры противодействия тут есть разные, начиная от фильтраций эшелонов прокси до защиты на уровне провайдера. Есть Cloudflare DDoS protection или аналоги. Но, во-первых, это стоит денег. Во-вторых, они проксируют весь наш трафик через свои сервера, что довольно медленно. А далее защита выстроена примерно так же, как и у нас, но на большем количестве устройств. Соответственно, они смогут выдержать огромный поток.
Получается, что в "мирное" время мы проигрываем дважды. Первый раз — когда платим деньги. Второй — когда проксируем весь трафик и теряем скорость. А время ответа сайта для нас очень важный фактор. Мы стараемся поддерживать эту характеристику на высоком уровне, потому что у нас есть много клиентов со старыми компьютерами. При том, что у нас время ответа маленькое, с добавлением 100-150 миллисекунд от Cloudflare — это уже увеличение в разы. Поэтому до серьёзных атак мы решили такие средства не применять.
Но в тот Новый год, видимо, мы кого-то сильно обидели. Для атаки использовали около 2,5 миллионов проксей. Это были простые устройства, которые отправляли по несколько запросов в секунду. Причём вводились прокси постепенно. Сначала 500 тысяч штук, потом 1 миллион, потом 1,5 миллиона и так до 2,5 миллиона в пике. Но мы держались и не падали. Да, иногда сайт тормозил, изредка начинал выдавать 503 ошибку, но продолжал работать. Такой результат мы смогли получить за счёт настроенной системы бана по IP, Rate limit’а, бана по регионам, по поведенческим факторам и по непрохождению CAPTCHA. В общем, вкупе все эти методы помогли нам устоять и отсечь мусорный трафик. И даже при наличии налаженных систем, на ходу приходилось всё вручную оптимизировать и донастраивать. Мы мониторили реальных пользователей и старались максимально не задеть их, готовили даже план Б, чтобы уйти на решения хостеров или под Cloudflare. К счастью, мы лежали около 20-25 минут, затем наши настройки начали работать, ну а спустя час DDoS был отфильтрован и со временем прекратился.
Пэйволл как финальная защита… или нет?
Мы долгое время оставались открытым источником, при том что различные наши конкуренты, например, СПАРК, Контур и прочие были платными. Бесплатными были только мы и мелкие проекты с нерелевантными и неконсистентными данными, с которыми крупные подрядчики никогда не работали. Тогда стало понятно, что пора меняться.
Сейчас мы закрыты пэйволом (paywall — способ ограничения доступа к контенту веб-страницы до оплаты разовой или постоянной подписки), соответственно, большую часть данных человек без оплаты получить просто не сможет. Поэтому теперь мы не очень интересны для парсинга, особенно с учётом остальных методов защиты. Подавляющее большинство script kiddies не хотят вкладывать ни рубля, но чтобы сейчас парсить, нужно оплачивать подписку. Мы отслеживаем пользователей, сессии, и если система замечает разные устройства и IP у одного аккаунта, то юзера просто разлогинивает. То есть, сейчас для кражи контента нужно вкладывать больше денег. И это, конечно же, невыгодно.
Подводя итоги
Сейчас у нас хорошая, но не идеальная система. Можно было бы настроить ещё множество факторов, подключить различные сервисы для защиты. Но, как говорится, важно соотношение цена/качество. Мы способны справиться с нагрузкой от 2,5 миллиона прокси и сделали максимально комфортным использование сайта для живого юзера. Можем быстро отсечь робота, если точно определим, что это он (в среднем, за 6 секунд). Продолжают ли нас парсить? Как это ни удивительно — да. Но теперь халявщики вынуждены платить и приносить нам прибыль, а если делают это как-то нечестно, то получают лишь мусор вместо данных.
Проблема парсинга может затронуть абсолютно любой сайт, где есть ценный контент. От этого страдают и медиа, и различные базы данных, и энциклопедии. Как поступать с ворами — решение владельца контента. Кому-то некритично, что у него забирают данные, а для кого-то это может грозить потерей бизнеса. Мы для себя решили пойти сразу в нескольких направлениях защиты и пока это работает. Но технологии тоже не стоят на месте и вероятно, скоро нас ждёт новый цикл противостояния в этой войне.
Что касается DDoS, то система неплохо выдержала новогоднюю нагрузку, но к сожалению, полностью защититься от такого нельзя. Если у атакующего будет достаточно средств для запуска масштабного потока в несколько терабайт за секунду, то не выдержат даже крупные дата-центры. Пока лишь остается надеяться, что у нас нет настолько богатых и мстительных врагов.
Комментарии (145)
anonymous
00.00.0000 00:00MilordCTO
09.11.2021 19:41Тех, у кого хватило таланта сделать что-то стоящее в правильный момент и разработать блестящую систему защиты от паразитов?
MilordCTO
10.11.2021 00:17+1А где именно в статье те, кто парсит, называются мошенниками? Нет там такого утверждения, внимательнее надо быть.
Akturian
10.11.2021 10:26Хе, ладно, Джина в бутылку не загнать, минусометы не оставить, но теперь я хотя бы лучше понимаю как всякие блм и прочие ущемленные добиваются успеха, среди казалось бы, разумных людей. Громче кричи, больше обвиняй, доведи до абсурда и заставляй оправдываться. Вот и весь секрет успеха.
Эх, обидно, что из за подобных комментаторов, могут пропасть хорошие авторы.
namikiri
09.11.2021 17:29+19Интересно, а данные из тех самых источников вы как получаете? Не парсингом ли?
Catherder Автор
09.11.2021 17:39+10Вполне официально. И, кстати, даже платим за это в ряде случаев. Есть такая штука - закон об открытых данных, если без канцелярита. Формально, насколько я понимаю, часть 149-ФЗ. Вся беда в том, что исполняется он у нас часто "на отлепись", многое там мутно и многозначно, поэтому работать с такими открытыми данными неспециалисту будет весьма непросто. Мы эту задачу упрощаем - собираем эти данные (вполне в соответствии с законами и условиями использования ОД), систематизируем, агрегируем, и предоставляем тем, кто готов за такой сервис платить.
PereslavlFoto
09.11.2021 18:16+6Если вы действительно получаете открытые данные, тогда вы получаете их по определённой свободной лицензии, а не просто так.
Это вообще частая ошибка. Когда люди говорят про открытые данные, они забывают, что открытость возникает не в тот момент, когда чиновник положил файл на сервере. Открытость возникает, когда ведомство разрешает (лицензирует) всем свободно использовать эти данные, закрепляя свободу через определённые разрешения.Catherder Автор
09.11.2021 18:27+12Вероятно вы правы. Но я не совсем уловил связь - данные это данные, а сервис это сервис. Если вы распечатаете выписку из ЕГРИП, например, про ваше ИП, и положите её дома, данные не перестанут быть открытыми. Но смогу ли я ходить к вам домой, чтобы в неё посмотреть? Или вы пошлёте меня на сайт ФНС? Должен ли любой, у кого в базе есть открытые данные, свободно предоставлять к ним доступ?
m03r
09.11.2021 18:37+6Подождите, в соответствии с Типовыми условиями использования ОД их использование в коммерческих целях никак не ограничивается (п. 13), причём это прописано явно.
На странице открытых данных ФНС тоже явно разрешается использование в коммерческих целях для производства нового товара/услуги.
PereslavlFoto
09.11.2021 18:41-2Спасибо за ссылку! Там прямо сказано:
«ФНС России гарантирует бесплатность Открытых данных в соответствии с Лицензией».
Если вы будете создавать новый товар или новую услугу, тогда открытые данные в рамках этого товара или этой услуги останутся бесплатными.m03r
09.11.2021 18:55+6Насколько я понимаю, эта фраза означает то, что ФНС не будет брать денег за доступ к этим наборам, как она, например, берёт за доступ к выгрузкам из ЕГРЮЛ/ЕГРИП или к бухгалтерской отчётности.
MilordCTO
09.11.2021 19:48+3данные бесплатными остаются, а база данных нет, как и товары и услуги, образовывайтесь
MilordCTO
09.11.2021 19:47+2Частая ошибка не знать, что после переработки данные уже перестают быть открытые, впрочем не удивительно, что вы этого не знали, это частая ошибка.
MilordCTO
09.11.2021 21:15+3даже если и так, если ты заработал, это не значит, что другие должны результаты твоего труда получать бесплатно, да ещё и за твой счёт, не?
ZiL87
09.11.2021 18:08+1Подскажите, считаете ли вы мошенничеством следующий порядок действий.
В организации есть внутренняя информационная система, в которой несколько тысяч контрагентов. Нужна определенная информация по этим контрагентам, чтобы можно было определенным образом систематизировать этих контрагентов. Можно посадить оператора, который будет перебивать данные со страницы в базу, можно программиста, которые напишет парсер по автозагрузке в базу. Считаете ли вы второй вариант мошенничеством?
Catherder Автор
09.11.2021 18:12+7Смотря что он будет парсить. Гос. ОД? Пожалуйста. Там, правда, тоже есть условия использования. Если они вам не подойдут - придётся что-то придумывать.
Какой-то коммерческий сайт? А что по этому поводу думает владелец? Он ведь вправе решать, на каких условиях предоставлять сервис?
Попробуете обойти его условия? Ненаказуемо по закону, но нечестно, как мне кажетсяZiL87
09.11.2021 18:16Смотря что он будет парсить. Гос. ОД? Пожалуйста. Там, правда, тоже есть условия использования. Если они вам не подойдут - придётся что-то придумывать.
Какой-то коммерческий сайт?Мы же сейчас rusprofile обсуждаем, соответственно вопрос про парсинг rusprofile при описанной выше ситуации. Предположим, забирается выручка или средняя численность
Catherder Автор
09.11.2021 18:31+7Вы вольны делать что угодно. За некоторые действия вас будут преследовать по закону, за другие - нет. За парсинг rusprofile статьи в законе нет. Но есть условия, на которых владелец сервиса согласен иметь с вами дело. Устраивает - добро пожаловать. Нет - проходите мимо. А пытаться получить что-то, что вам не готовы предоставлять в нашем случае ненаказуемо, но кмк нечестно.
ZiL87
09.11.2021 18:59+1Я в вопросе не спрашивал про закон и уголовный кодекс, а спрашивал про ваше личное мнение про использование сайта при приведенных выше условиях
Catherder Автор
09.11.2021 19:13+6Ну я же ответил. Вам предлагают сервис на определённых условиях. Согласиться - нормально. Отказаться - нормально. Не согласиться, не заплатить за чужой труд в нашем случае, и пытаться воспользоваться результатами - нехорошо. Моё мнение.
ZiL87
09.11.2021 19:22-1Почему не заплатить? У вас выручки нет в свободном доступе, т.е. предполагался платный аккаунт.
Я до сегодняшнего дня не предполагал, что это может восприниматься как мошенничество, т.к. не понятно какая вам разница посадим мы человека данные перебить или автоматизируем процесс.
У нас в ближайшем будущем будет актуальна такая задача внести в нашу ИС данные. Получается, даже с помощью платного аккаунта этого делать нельзя, потому что это почему-то мошенничество.
Catherder Автор
09.11.2021 19:34+3Ну, Москва не сразу строилась. Для вашего случая мы разрабатываем API, которое сейчас находится в стадии закрытой беты. К сожалению разработка идёт медленнее, чем хотелось бы (и мне и вам наверно), но когда всё будет готово мы непременно об этом напишем.
К сожалению одной из ключевых причин отсутствия API на сегодняшний день является его низкая востребованность.
MilordCTO
09.11.2021 19:51+1если вы заплатили 1000 рублей за шведский стол это не даёт вам право выжрать весь ресторан
PereslavlFoto
10.11.2021 00:41+1При такой оговорке шведский стол теряет все свои преимущества. Ведь обычно-то преимущество шведского стола именно в том, чтобы заплатить за 1 порцию, а съесть пять-шесть. В хорошем же случае — заплатить за 1 порцию, а съесть девять или десять.
Именно поэтому большинство туристов, которые пользуются шведским столом, приезжают из отпуска с большим увеличением веса.me21
10.11.2021 10:19И тем не менее шведский стол остаётся выгоден для отелей. Видимо, на самом деле преимущества шведского стола и нет. Я думаю, если бы какой-то сверхчеловек объедал отель, его бы перестали туда пускать. Как в казино не пускают счётчиков карт.
MilordCTO
09.11.2021 19:53ну вы платите налоги, это не даёт вам право полицией как своими собаками распоряжаться, например? или что-то требовать от должностных лиц, платите и платите
me21
10.11.2021 10:20Справедливости ради, от должностных лиц таки можно требовать выполнения ими должностных обязанностей.
MilordCTO
09.11.2021 19:50вопрос в том, считает ли закон такие действия не законными, если правообладатель их не разрешал, и тут однозначное да
aborouhin
09.11.2021 18:14+8Интересно, в каком сценарии оптимальным решением оказывался парсинг Руспрофиля (даже если таковому никто бы не мешал).
Если данные нужны по отдельным запросам, и их не сотни тысяч - дешевле и проще брать API от Спарка, Контура, Коммерсанта и иже с ними, чем писать и поддерживать парсер.
Если запросов очень много или нужна полная база для построения какой-то своей аналитики - то полный набор источников данных обходится в пределах 1 млн.₽ в год (не считая, разве что, Картотеки арбитражных дел, где возможны только подковёрные договорённости на непрозрачных условиях, - ну так её проще напрямую парсить, если уж припекло), что для столь масштабного проекта тоже, вроде как, приемлемо. Да, обработать совершенно все источники со всеми их приколами требует определённой работы - но, во-первых, вряд ли кому то нужны совершенно все данные, во-вторых, это всё-таки качественный прирост в скорости и надежности по сравнению с парсером (а раз нам нужно всё-всё-всё - то проект у нас большой и это важно).
В обоих перечисленных вариантах огромный плюс - данные будут в сыром формате, который можно привести к любому необходимому, а не в том виде, в котором их посчитал необходимым обрезать / агрегировать / преобразовать Руспрофиль для своих нужд.
P.S. Может, если понять ответ на этот вопрос, можно было предложить парсерам интересующий именно их продукт на приемлемых для них условиях? Те же обработанные выгрузки.
GraY_i3
09.11.2021 18:28+2Есть вероятность что у rusprofile тоже есть свой апи для внешних сервисов. Вопрос вот в чем - готов ли средне-статистический парсер платить за эти данные?
Есть подозрение что в 95% случаев - нет.
Естественно если этот парсер работает без злого умысла, в противном случае ему откажет любая фирма.
aborouhin
09.11.2021 18:37Ну он же платит за разработку парсера, поддержание его в актуальном рабочем состоянии (что в случае парсера - кратно больший объём работы, чем в случае с использованием API), за пулы прокси, за обработку полученных данных (после парсинга тоже, как бы, не готовая база данных с корректной структурой, типами и пр. получается). Т.е. тратит достаточно много денег, которые можно было бы заплатить или за API посредника, или за самостоятельную обработку первоисточников.
Есть данные с отсутствием официального доступа или заградительными тарифами - там всё понятно, но тут я удивился. Потому что сам в таких данных потребность иногда испытываю и последнее, что мне пришло бы в голову - это потратить свои деньги на парсинг даже не первоисточника, а посредника, потом каждый день трястись, что он поломается и продолжать вкладывать деньги в переделку, - да ещё и на выходе получить данные сомнительного качества.
Catherder Автор
09.11.2021 18:40+3Спасибо за вопрос. Действительно, сложно представить, чтобы полный набор данных по компаниям/ИП был нужен для чего-то другого, кроме как создания сайта-клона.
Кстати, когда мы показываем капчу, то в HTML-комменте предлагаем связаться с нами, чтобы обсудить вопрос массовой выгрузки. Обычные пользователи не заметят, а люди, работающие с исходным кодом, могут и обратить внимание. И, кстати, обращают: запросы на выгрузки (кстати, весьма и весьма разные по составу) поступают регулярно. Но, по-видимому, не все считают для себя возможным договариваться и обсуждать условия.
aborouhin
09.11.2021 18:47полный набор данных по компаниям/ИП был нужен для чего-то другого, кроме как создания сайта-клона
Ну вот тут не соглашусь, для аналитики полная база иногда таки нужна, потому что если начинаешь дёргать всех аффилированных лиц на несколько уровней вложенности, а потом каждого из них по хитрым критериям проверять на признаки "технички"/однодневки/"прокладки" - то запросов к API очень быстро становится столько, что это неприемлемо ни по цене, ни по скорости. Но для такой задачи не грех и самому научиться первоисточники обрабатывать.
P.S. А насчёт выгрузок запомню, может обращусь в следующий раз. Какие-то исторические данные, у которых уже и формат/источник давно поменялся, иногда ну совсем нецелесообразно самому разгребать, проще заплатить тем, кто сделал это раньше.
MilordCTO
09.11.2021 19:54если есть умение оптимизировать усилия, а так конечно да, проще алмаз из земли добыть, чем из тумбочки взять
ionicman
09.11.2021 18:30+6Мошенниками можно назвать только тех, кто использует спарсенные данные для обмана кого-либо или совершения иных мошеннических действий с использованием полученных данных.
Использование данных парсинга с нарушением лицензии на которой эти данные предоставляются можно назвать лишь «нечестным способом получения данных», но никаким видом мошенничества это не является. Даже, если эти данные послужили или служат сайту с похожим функционалом.
А то тогда и поисковики все — мошенники :D
Мало того — как только вы положили данные в открытый доступ — у вас парсинг автоматически пойдет — кто-то парсерить глазами будет, кто-то — скриптами. А иначе зачем вы это выставили на всеобщее обозрение?
Ваша защита элементарно обходится фермой с пюпитром, хэдлесс хромами и пуллом IP с антикапчей, покупаемых за две копейки. К слову — эмуляция поведенческих действий тоже для этого имеется. Проблема будет в скорости и объеме, но это вполне решается масштабированием фермы, если есть необходимость. Мало того, парсинг вообще можно сделать on-demand.
По-этому самая правильная борьба с парсингом — это отсутствие борьбы, а вместо этого регулярная работа с данными так, чтобы у вас всегда было лучше. А то вы будете очень похожи на господ, юзающих защиту «от плохих» и мешающих таким образом «хорошим» — своей собственной целевой аудитории.
Многократно проверено, что если у таких сайтов есть платное API, и цены на данные адекватные — то люди охотнее будут использовать API, чем связываться с парсингом.
Про Denuvo слышали? Ну вот вам яркий пример. И большинство студий сейчас от нее отказались.
Что касается борьбы с нагрузками — это можно и нужно делать, но опять-же только если это не вредит вашей ЦА.Catherder Автор
09.11.2021 18:36Про борьбу с нагрузками. А если это, условно, вредит нашей ЦА, то бороться не надо вовсе? Оставить на самотёк, чтобы парсеры положили сайт, и ЦА осталась вообще ни с чем? Или лучше слегка усложнить доступ 5% честной аудитории, но остаться на плаву?
ionicman
09.11.2021 18:40+1А если это, условно, вредит нашей ЦА, то бороться не надо вовсе
Нет конечно, все зависит от того, превышает ли профит от борьбы вред, наносимый ЦА.
В бизнесе рулят цифры, но никак не слепая вера, рассуждения или неписанные правила.
Однако в случае парсинга, если данные реально ценные, то защититься от этого будет практически не возможно — разумными методами. Даже если Вы на канвасе писать начнете, или шрифты тасовать (как было недавно) :)Catherder Автор
09.11.2021 18:42+1Вы совершенно правы. Именно поэтому мы и делаем всё то, о чём рассказали в статье.
ionicman
09.11.2021 18:48Если не брать в расчет DDOS, то в эпоху headless, контейнеров и скоростных каналов это все практически бесполезно — говорю вам как человек, который был по обоим сторонам баррикад.
Практически все, кого вы смогли отсечь, вернутся. Данные вкусные, на них есть спрос — это ответ.
Если составить очень сложную статистику по анализу поведения и анализировать ее — это можно будет заметить. Восстанавливается старый объем парсинга примерно за 1.5 месяца после принятия мер и обычно — практически в старом объеме.
А теперь вопрос от меня — у вас есть API для получения данных?
Если нет — введите, проверите потом насколько уменьшится парсинг — и если это составит больше 5% — жду от вас пиво )))Catherder Автор
09.11.2021 19:04Всё так. Ну, почти. Об этом и пишем. Война копья и щита, пока нам кажется, что успешная
Catherder Автор
09.11.2021 19:44API в закрытой бете. Был проведён ряд исследований запросов пользователей и востребованности API. К сожалению результат оказался не слишком впечатляющим
ionicman
09.11.2021 21:53+3К сожалению результат оказался не слишком впечатляющим
Ну это примерно как спросить пользователя «какой должен быть интерфейс», правда?
Сделайте, опубликуйте эту информацию на своем сайте и, например, на хабре. Дайте вменяемую модель монетизации и результат будет.
Не верите мне — посмотрите на парней из DaData.
Тем более сделать API — не такая уж сложная задача, не так ли?
Хотите пример? Сайт ростелека атакуется парсерами ежесекундно, а знаете почему? Люди просто хотят видеть свой баланс без всяких их приложений в виджете на телефоне. Но у федеральной компании нет API, совсем. Потому что «нашим пользователям это не нужно» :D
MilordCTO
09.11.2021 19:58-1хедлес, контейнеры, скоростные каналы и вот это вот всё за 2 копейки? вы из будущего?
MilordCTO
09.11.2021 19:57Суд над такой правовой позицией только усмехнётся :) есть право исполнителя базы данных, но не только лишь всем про него известно, к сожалению
navferty
09.11.2021 18:50+3А есть ли у Вас на сайте публичный API? Например, как у дадаты, можно зарегистрироваться и получить api-ключ. До какого-то порога запросов в день можно таскать данные бесплатно - что покрывает например потребность в приведённом примере excel'евского макроса, человек может легально получить данные (например, как в комментариях выше, в ситуации когда есть внутренняя корпоративная система, и для нее нужно подтягивать актуальную инфу по сотням/тысячам контрагентов). Если же данных нужно больше - продавайте платный api-ключ с увеличенным лимитом: и вы зарабатываете, и пользователю удобно забирать данные, не нужно бороться с капчей.
m03r
09.11.2021 19:01API существует, но на данный момент в статусе закрытой беты, и коммерческую эксплуатацию мы пока что не ведём.
Catherder Автор
09.11.2021 19:01В настоящий момент API для получения данных находится в стадии закрытого бета-тестирования. Когда сервис станет публичным, мы обязательно напишем об этом
cry_san
10.11.2021 04:59Так он уже как год в стадии тестирования, нет?
Неужели нельзя найти специалиста для разработки вменяемого API? Сделайте тогда клон с дадаты.
conopus
09.11.2021 18:50+10В статье с тегом "открытые данные" описывается борьба с парсингом. Это — "пять", конечно.
MilordCTO
09.11.2021 20:01+1Открою для вас тайну, те же гос учреждения, отдающие открытые данные, за парсинг вас моментально забанят. Есть формат, приемлемый для источника данных, парсинг в его число не входит. Парсеры лесом.
JekaMas
09.11.2021 19:02+23Я зашёл на сайт, прочитал одну страницу про себя и оставил на соседней вкладке. Вернулся минут через 15-30.
Это точно положительный итог вашей борьбы?
ionicman
09.11.2021 19:04+3Это как раз то, про что я и говорил :)
Но, справедливости ради, мы не знаем их ЦА, может им это норм по сравнению с теми данными, которые там есть.
m03r
09.11.2021 19:23Судя по формату скриншота, вы с мобильного телефона, и мобильные операторы, увы, до сих пор выдают нескольким клиентов один и тот же внешний IP. Собственно, теневая капча, возможно, именно поэтому Вас и не пропустила (там сейчас порядка 3% подозрительных запросов с точки зрения гугла, т.е. Вам "повезло" в них попасть).
В данном случае положительный итог в том, что если Вы нажмёте на галочку рекапчи, то довольно долго у Вас не будет никаких проблем с доступом.
JekaMas
10.11.2021 19:46У меня скорее вопрос, как вы считали метрику ложно-положительх срабатываний и проседания ux.
Ведь если я не нажму на капчу, то я неотличим для вас от спама и вы бодро запишите, что успешно отразили спам.
Ход с тем, что пользователю предлагается самому написать письмо с какими-то данными, по мне, странный и недружественный. Почему не предлагать форму с сайта?
m03r
11.11.2021 00:24По теневой капче метрика ложноположительных получается из статистики явной капчи: те, которые теневую проверку не прошли, а явную прошли, те, значит, всё-таки белые и пушистые. Кстати, большинство не проходит.
Если Вы не нажмёте на капчу, то от спама Вы всё-таки отличимы, потому что больше запросов от Вас не будет.
Пользователи как раз очень активно пишут, если их что-то не устраивает (кстати, в ссылке уже прописан subject). Жалобы в обратной связи — один из основных способов подстройки параметров так, чтобы реальные пользователи как можно меньше страдали.
MilordCTO
09.11.2021 22:12Вот этим успешные предприниматели и отличаются, что видят положительный итог там, где другие видят препятствия и изливают свой негатив на окружающий мир. Талантливый человек заметил бы, что у компании 5 вакансий, следовательно её итог деятельности весьма как положительный, она растёт и успешна. Ну а вам удачи с капчой, отпишитесь по результатам.
Green_hat
09.11.2021 19:50+5Интересный вопрос подняли и набросились жестко на ТС.
Этично ли парсить парсера и не является ли собиратель открытых данных бякой, если запрещает собирать собранное у себя, а не там, где оно покладено?
Вопрос, конечно, мутноватый.
Законодательство всё открыто, бери всякую официальную литературу и читай сколько влезет, но есть места, где сложено удобоваримой кучкой, например Констультант плюс. Не все разделы, но львиная доля - открытая информация, "всего лишь" хорошо увязанная и удобочитаемо выложенная.
Давайте спиз... хм, спарсим у Консультанта общедоступную инфу?Ы? Им же тексты законов не принадлежат, как и комментарии.
__________
Парень, держись!Собрал - юзай и никому не позволяй ковыряться в уже перебранном!
Злая мачеха на бал умотала, крупу рассыпала в открытый источник, Золушка её собирала-собирала, все рученьки по самый парсер стерла и тут бац, какая-то халда двумя граблями да в нашу кучку.Туфелькой ей по лбу!
tark-tech
09.11.2021 20:35+2В этом случае мы видим массу запросов с одного IP-адреса и, естественно, можем это элементарно ликвидировать. Просто баним этот IP, используя автоматизированное решение. ... Естественно, у этих парсеров был IP компьютера, на котором запускался этот скрипт, ну а дальше уже всё понятно.
Хм... Учитывая что на дворе 2021й, пользователи анмасс сидят в нате за провадерским ип... одному мне кажется что это замечательный выстрел себе в ногу?
Catherder Автор
09.11.2021 20:40Да, думаю одному вам. Мы очень внимательно разбирали этот вопрос, и по факту массово за NATом с одним выходным IP сидят только мобильные юзера (а у них нету экселей со скриптами). Со стационарными всё куда проще. Вы скажете "каждый офис такой"!. Да, но это не "массово", 20-30-50 юзеров на одном IP особой проблемы не представляют, всё различимо, если это живые люди. Вот ОПСОСы создают некоторые сложности, там за одним IP могут быть тысячи. Но на самом деле всё решаемо :-)
m03r
09.11.2021 20:40Такие опасения были, да, но, к счастью, не подтвердились.
Грамотно настроенные параметры (там было несколько итераций донастройки) и теневая капча позволяю сейчас прозрачно пропускать порядка 97% пользователей
Nehc
09.11.2021 20:56+5Сначала конечно тоже был настроен очень негативно: в начале статьи четко читается, что сама компания зарабатывает парсингом открытых источников, является сама открытым источником, но тех, кто парсит уже их считает исключительно жуликами и ворами. Двойные стандарты детектед!
Чуть дальше стало понятно, что в принципе да — все так и есть, но все-таки понятно, почему компания хочет защитить плоды своего труда: источников много, они неудобные а люди их обрабатывают, поддерживают в актуальном состоянии и в принципе ожидаемо хотят за это денег…
Но все-таки неприятный осадок остался… Возникли вопросы, а почему собственно те самые «открытые источники» настолько неудобны, что люди вынуждены платить агрегаторам? Нет ли там некоего конфликта интересов (может сайты специально неудобные, что бы дать заработать кому надо!) Разве данные о благонадежности контрагентов не хорошо бы сделать единой общедоступной базой для всех желающих? На уровне государственном в рамках каких-нибудь госуслуг…
Ну и в целом — я непрофессионально занимаюсь ML и для меня парсинг данных с сайтов точно не воровство для перепродажи, а просто источник данных для анализа. И когда данные, которые ДОЛЖНЫ быть открытыми (вроде последних результатов выборов) начинают обсфуцировать, затруднять к ним доступ и прочая — мне неприятно…
Хоть я и понимаю, что и люди должны получать оплату за то что делают, и нагрузку парсеры в 100 потоков создают неприятную (а с учетом быстрого устаревания данных — еще и постоянную) нагрузку, но все равно… Что-то вы делаете не то и не так… Или не вы. В целом ситуация какая-то неправильная.PsihXMak
09.11.2021 21:14Хех, однажды самый последний программист напишет самый удобный сайт. Тогда и парсить ничего не нужно будет и все данные будут лежать в идеальной удобной форме понятной каждому человеку.
m03r
09.11.2021 21:16Ситуация неправильная, Вы совершенно правы. Открытое государство в идеальном варианте выглядит именно так, как Вы описали.
Но в реальности соответствующие органы не очень-то заинтересованы в открытости, отсюда и разного рода неудобства (а конфликт интересов выглядел бы как один "привилегированный" источник с эксклюзивными доступами).
MilordCTO
09.11.2021 22:03Угу и бизнесы все закрыть, нафига они? Один раз взять всё и организовать идеально из единого центра, а остальное запретить. Как-то знакомо это звучит, вам не кажется?
JayDi
09.11.2021 21:12+4По статье сложилось впечатление, что люди, отвечающие за "защиту от парсеров", сами не совсем в теме, как они работают.
Сначала идет рассказ о том, что технари на добровольной основе заставили парсеры перейти на полную загрузку страницы и выполнение скриптов, вместо отдачи простого текста. Тем самым в разы увеличив нагрузку на свои сервера и трафик (об экономии которого так рьяно заботились, судя по тексту далее).
Затем рассказывается про рекапчу и ее теневой режим. Но при этом строго настрого умалчивается то, что этот вариант защиты очень легко обходится путем использования сторонних сервисов по разгадыванию капч типа рукапчи.
Так же идет рассказ про ежедневное обновление данных о компаниях и что это может спасти от парсеров. При этом называются контактные данные, юридические адреса для примера -- данные, которые вообще изменяются раз в несколько лет. А ведь это основная цель большинства парсеров и баз, а вовсе не списки госконтрактов или судов. Т.е. данный пункт "защиты" вообще бесполезный.
В итоге из-за жадности тупо закрыли свои данные, в т.ч. и для обычных пользователей. Это и позволило отсечь парсеры. Получилось в духе: доктор, у меня болит палец -- несите пилу, сейчас будем ампутировать руку.
По мне, так это вовсе не победа, а признание поражения.
m03r
09.11.2021 21:26+1Это неверный вывод. Скрипты и прочее отдаются из кеша статики, нагрузку это, конечно, увеличивает, но совсем незначительно. А вот исполнять скрипты по сравнению с парсингом HTML значительно дороже.
Конечно, обходится. Цель — не 100% защита, а усложнение жизни тем, кто хочет нарушать условия.
По каждой конкретной компании не изменяются, да. Но действующих компаний почти четыре миллиона, и постоянно регистрируется ещё, поэтому объём ежедневного обновления достаточно велик.
Переход на подписочную модель не связан с обсуждаемым вопросом, там были другие причины.
aamonster
09.11.2021 21:50+7Запасся попкорном.
На первый взгляд ситуация выглядит как "сайт, выкладывающий информацию, собранную с других сайтов, борется со сбором информации с себя".
MilordCTO
09.11.2021 22:28+2Как человек, затративший труд, борется за то, чтобы он оплачивался. Потрудитесь над своим порталом годик-другой, быстро поймёте, что к чему...
aamonster
10.11.2021 07:44+1"Потрудитесь над своим порталом годик-другой" – нет, спасибо.
Довод про труд – так себе. Труд сам по себе не оплачивается, иначе можно было бы каждое утро копать яму, каждый вечер закапывать и получать деньги. Попробуйте обосновать иначе.
ЗЫ: Я так понимаю, вы сотрудник того самого портала?
ЗЫ2: Тупые дорвеи и набитые рекламой клоны сайтов мне тоже не нравятся. Особенно люто ненавижу сайты машинных переводов Stack Overflow.
verstoff
09.11.2021 22:20+4Лайфхак — отдаете данные, зашифрованные столько раз, сколько нужно, чтобы создать нагрузку при дешифровке. Браузеру для отрисовки потребуется дешифровать данные, затратив нехилый, но не критичный объем ресурсов. Боту же это будет обходиться слишком дорого для одного потока. О ЦА надо заботиться, зима близко, "подогреем" аудиторию так сказать.
Кстати говоря, искусственную сложность можно заменить на майнинг какого-нибудь Monero (выдавать ключ после выполнения полезной работы), еще и в плюсе останетесь.
Надеюсь, понятно, что это шутка, а не руководство к действию.
hecategram
10.11.2021 01:14-3Владельцам портала нужно публичную оферты четко прописать. Для чего и каких целей пользователи получают данные с сайта. Если кто не согласен с публичной офертой, есть первоисточники...
А то так можно договориться, что все книги должны быть бесплатные. Ибо их пишут буквами, которые как бы общественное достояние.
13werwolf13
10.11.2021 09:13+2а почему бы вместо того чтобы бороться с парсерами не сделать их работу безполезной?
при наличии хорошего api парсинг становится ненужным, допустим 3 запроса на одну учётку на пробу, дальше платно. и всё. тем кто делает для себя бесплатного тарифа хватит, остальные заплатят
как результат и нагрузка на сайт/сервера/сервис уменьшится, и паразитного трафика станет меньше, и злобные хацкеры/парсеры разойдутся мешать жить другим, и юзвери станут шире улыбаться
беглый гуглёж показал что у руспрофайла нет никакого api
m03r
10.11.2021 09:37+1Описанная в статье система противодействия, по сути, и делает работу парсеров бесполезной, т.е. более дорогой, чем самостоятельная разработка.
API существует в виде закрытой беты, поэтому и не гуглится, и, как писал мой коллега выше, пока что выглядит не слишком востребованным.
vovchik63
10.11.2021 09:51+1Прочитал статью, комменты и удивлен, что так много людей накинулись на ТС. Да, данные собираются из открытых источников, но сервис их собирает в одно целое и выдает пользователю в удобном виде, про зарплаты, накладные расходы - тоже не стоит забывать. Почему компания должна отдавать результаты своего труда просто так?
valexeev
10.11.2021 10:12+4Решать проблему отношения к сервису со стороны потребителей с помощью машины - игра в обороне и она всегда на шаг отстаёт. Капчу рано или поздно обойдут, как и fail2ban.
Судя по тому что вас клонируют и парсят - вы делаете безусловно нужный сервис. Но ощущение такое что вы слабо представляете как, кто и зачем его на самом деле использует.
Решите как вы к этому сервису сами относитесь:
Вы инженеры, которым интересно сделать красивую архитектуру, ETL и сайт с фортепьяно и певицами? Тогда ладно, изобретайте paywall'ы, защиты и препятствия - это бесконечная техногонка. Мы запасёмся попкорном и будем дальше читать ваши статьи на Хабре.
Вы борцы за свободный и открытый доступ к данным? Тогда в чём проблема? Пусть все копируют вообще всё если это сделает данные ещё более доступными? Будьте википедией, просите донаты и гранты на оплату работы сервиса и т.п.
Вы стартаперы-предприниматели-бизнесмены? Тогда посмотрите на это как на бизнес и назначте адекватную цену продукту. Сделайте так, что бы его было удобно купить. Поработайте с ЦА и придумайте производные продукты, которые можно продавать. Помониторьте, исправьте, повторите.
Если вы про бизнес, то сейчас такими сугубо техническими решениями вы воюете со своей же ЦА, которая - при наличии возможности - вполне могла бы вас любить, платить вам и поддерживать.
Посмотрите на кейс Cambridge Analytica. Откинув в сторону сам скандал - их бизнес был на доступе к данным, которые во многих случаях можно получить парсингом. И им очень неплохо платили за это.
makasin4ik
10.11.2021 11:22+1Cобственно вы ведь сделали самое простое - теперь весь доступ под логином к данным. Зачем вас кому-то парсить в итоге?
tuslo
10.11.2021 13:39+1Как только юзер определяется как злоумышленник, данные ему не перестают поступать (ведь иначе парсер об этом узнает и что-то сделает), но цифры меняются местами и больше не представляют никакой ценности
Тут, кажется, очень скользкий момент. Ведь есть вероятность ложноположительных выводов вашей системы, которые могут отразиться на репутации бизнеса?
Были ли реальные случаи? Обращались пользователи в поддержку или сразу писали о некорректных данных на профильных форумах?
m03r
10.11.2021 14:00+1Испорченные данные пользователь не видит, они скрываются стилями, показывается только капча.
snakers4
10.11.2021 13:59+1финансовые и юридические данные о компаниях, которые мы агрегируем у себя последние 5 лет
Первое, что мы сделали — начали отключать около 80% script kiddies.
Fail2ban — первый шаг, чтобы отсечь мошенников
около 2,5 миллионов проксей.
Подавляющее большинство script kiddies не хотят вкладывать ни рубля, но чтобы сейчас парсить, нужно оплачивать подпискуСталкивался с похожими ситуациями, но с другими типами данных. Тут есть ряд проблем, которые почему-то неочевидны разработчикам сервисов и часто наблюдается эффект собаки на сене.
Никто не спорит, что аггрегация и приведение в красивый вид публичных и свободных (!) данных, создает добавочную ценность. Но вы являетесь по сути информационным посредником и не создаете новой информации.
То есть с развитием прогресса (и в терминальном состоянии, когда все ведомства начнут иметь нормальные бесплатные API, а России тут внезапно впереди планеты всей, как ни странно) — ваша услуга в текущем состоянии станет просто не нужна (если вы конечно не начнете оказывать новые услуги, создающие другую свою добавочную ценность).
Так вот, если очень упрощенно, рынок можно разделить на:
-
Массовый сегмент. Тут на самом деле не совсем понятно зачем нужны все эти платные сервисы байтящие на подписку, когда выписка ЕГРЮЛ получается с сайта налоговой, а с АПИ той же налоговой можно получить ту же табличку с финанасовыми данными (да, придется загуглить что значат коды). Да, наверное с арбитражем и закупками и банкротством все сложнее, но я на шару назвал то, чем я пользуюсь. Иногда проще попросить опять же юриста умеющего искать потратить 15 минут (и оплатить ее работу пакетно), чем байтиться на бесконечные подписки на публичные и свободные данные;
-
Узко-профессиональный сегмент. Когда ты проверяешь по 10+ договоров с новыми контрагентами в день, скорее всего подписка оправданна;
-
Сегмент так сказать эффективных "SEO-менеджеров", кто действительно делает сотни-тысяч страниц с "плохими целями" и на поверхности выглядят как клоны легитимных сервисов, но реально ставят перед собой други цели;
-
Все остальные, не попадающие в эти категории, которых вы так пренебрежительно называете преступниками, мошенниками, школьниками, хакерами итд итп;
Наличие платных АПИ — не панацея. Цены за них ставят такие, что допустим, если мой юзкейс не вписывается в квадратно-гнездовые рамки разработчика сервиса, то доступ к полной базе будет стоить 10 миллионов рублей, потому что меня сразу подозревают к принадлежности к группе нормер (3). И это в лучшем случае. В худшем — никто не будет разбираться какие данные нужны или нет. Покупаете или всю базу за тонны нефти или пользуетесь как рядовой юзер. А я например хочу сделать легитимный сервис, мне нужно много данных, но очень узких, и я не собираюсь создавать ничего наподобие (3).
Методы технической борьбы описанные в статье интересны, но с идеологической точки зрения — вы путаете теплое с мягким и не говорите главного, а какие данные больше всего парсят? Может просто продавать точечные базы целиком с гарантией обновления за X? Вам писали ваше недруги, а вы спрашивали их зачем они парятся и пишут парсеры? Ответы на все эти вопросы с точки зрения построения справедливого общества гораздо интереснее, чем "тупо баним всех кто не платит за и так публичные данные, азаза".
При таком отношении понятно, что открытость по сравнению с конкурентами просто была способом набора трафика, а сейчас наступила пора монетизации, но market fit это реально очень сложно. Но не надо называть своих самых прошаренных пользователей — преступниками. Они просто оценили расходы на сбор информации, увидели market failure (т.к. их сабсет данных вы не хотите им продать) и решили действовать максимально простым методом.
Catherder Автор
10.11.2021 14:43Но вы являетесь по сути информационным посредником и не создаете новой информации
Почему же? Вполне создаём. У нас есть своя аналитика надёжности, построение связей, и много чего ещё появится в будущем
-
FAT
10.11.2021 17:27Не знаю почему вы против Cloudflare, но я его частенько использую. Как вы говорите 100-150 мс это не так уж и критично ни для пользователя ни для поисковой системы.. Мне неизвестна основная география вашей аудитории, но я думаю CDN клаудфлаера отдаст гораздо быстрее данные из своего кеша пользователю из Владивостока, чем условно ваш сервер в Москве. Но при этом вы снимаете с себя приличный объем работ по конфигурированию nginx/apache, fail2ban, etc. И плата 20$ в месяц не такая уж и большая сумма.
vilgeforce
А почему тех, кто парсит, вы называете мошенниками? Кого они обманули?
Catherder Автор
Зависит от целей парсинга. Как правило пытаются сделать полную копию, с использованием нашего дизайна, нашей IP. Т.е. сайт выглядит неотличимо, а функционально ущербен. Путает пользователей, портит репутацию (в первую очередь себе, конечно). Теперь, с появлением платного функционала, ещё и мошенничество на подходе.
vilgeforce
Давайте вы еще раз подумаете где в парсинге обман?
Catherder Автор
В самом парсинге, или в комплексе операций с иной целью, предполагающих парсинг как составную часть?
vilgeforce
В самом парсинге, я вроде довольно ясно выражаюсь...
Catherder Автор
А кого может обмануть сам парсинг? Парсинг это просто работа с данными. Вот что с ними дальше будет - это вопрос другой. В чём обман при сборе персональных данных, номеров кредитных карт, паролей?
vilgeforce
Вот я вас и спрашиваю - где обман-то, что вы кого-то там "мошенниками" называете только за парсинг вашего сайта. Называете людей преступниками, фактически
Catherder Автор
Обман - в введении в заблуждение пользователей. Можно конечно разделить - вот этот - мошенник, он делает фишинговый сайт и принимает платежи и данные карт от чужого имени, но данные для сайта он купил у кого-то другого. А тот другой - белый и пушистый, фишинговых сайтов не делал. Но как правило, это одни и те же люди. Вообще есть ещё такая штука, как fair use, пользовательские соглашения, и прочее подобное. Но вопрос ведь не об этом, так?
vilgeforce
Что-то вы юлите и от ответа уходите...
Akturian
А вы какую-то ересь несёте.
Спасибо за статью, очень познавательно.
MAXH0
Нет!, vilgeforce, несет не ересь. Он последовательно пытается узнать почему парсинг данных выложенных в публичную Сеть Интернет вдруг становится мошенничеством.
А вот Catherder по моему очень сильно лукавит и передергивает. К сожалению не он один. У многих владельцев сайта мышление того школьника, который писал в журнал Xakep "Подскажите, как защитить свой сайт от копирования?" rusprofile мне парсить не приходилось, но очень сильно раздражают сайты не отдающие данные удобно для чтения и затрудняющие их машинный анализ.
Сейчас много данных получается именно из машинного анализа ПУБЛИЧНЫХ данных. Нам не нужны адреса клиентови и данные их карт. НО объявлять мошенниками каждого кто пошел парсить открытые данные в Интернет... Это перебор!!!
Catherder Автор
Но ведь есть официальные источники! Идите к ним. Впрочем, то, как они затрудняют машинный анализ, наверно даже ненамеренно, мы освещали тут https://habr.com/ru/company/rusprofile/blog/585516/
Или вам нужны именно разобранные и провязанные данные? Ну так это и есть наша работа, и хочется, чтобы она была оплачена. Мы коммерческая компания, делаем продукт, пользование которым стоит денег. Вы можете сделать всё то же самостоятельно, никто вам слова дурного не скажет. А мы предоставляем данные бесплатно только в ограниченном объёме.
MAXH0
Я еще раз повторю. Вас не парсил, но за лексикой прошу следить. Называть людей копирующих вашу информацию, пусть даже и не лицензионо и во обход ваших правил "добросовестного использования" (хотя возможно и нет) мошенниками и ворами = отрыжка копирастии. Я поэтому влез в комменты. А так ваша область лежит далеко за пределами моих интересов.
ИМХО это огромная проблема вашей бизнес-модели в том, что она основана на такой вот "тайне". И результатом "тайны" будет то, что каждый раз вас будут атаковать все более велосипедно-костыльные парсеры. И Капча сейчас отнюдь не панацея. А еще интересно сколько клиентов вы потеряете в результате, а сколько приобретете. Если дебет на вашей стороне, то вы правы. А иначе и не стоило заморачиваться...
Catherder Автор
Наша бизнес-модель основана вовсе не на "тайне". А на предоставлении данных, изначально очень неудобных для практического использования, в форме гораздо более пригодной для целей наших клиентов. Плюс некоторая аналитика. Есть те, кто готов платить за такую услугу, а есть те, кто не готов сам заниматься анализом, а результат хочет получить (почти)бесплатно. Сервис для этого не предназначен.
Насчёт капчи совершенно согласен, не панацея. Поэтому и приходится изощряться.
MilordCTO
А вас я попрошу следить за аргументами, если вы сделали пару, как вы сами сказали "велосипедно-костыльных" программных продуктов, это ещё не значит, что вы имеете право на экспертное суждение об архитектуре, которая лежит, опять же по вашим же словам "за пределами ваших интересов". Сколько вы вообще и какие бизнес-модели построили, чтобы делать такие умозаключения?
Serge3leo
Вроде как, Вы пишете, что даже тем, кто оплатил подписку, Вы блокируете машинные способы анализа данных. Обидно, да?!
Это, конечно, ваш бизнес. Но, на мой взгляд, как то, вот не по-людски, и денежку за подписку взять и обязать всё делать руками и глазами.
Akturian
о_О! Вырвать фразу из контекста, обидеться на нее и начать хайп - оригинально.
Во-первых - статья не о мошенниках. Так что любые ваши замечания за использование данного слова - просто уход в сторону от обсуждения самой статьи.
Второе - ребята, которые прямым текстом в статье пишут что проделали тинанический труд по сортировке данных, естественно будут как минимум чувствовать себя некомфортно если кто-то тырит их данные, выдавая за свои собственные. В данном моменте я вижу эмоциональный окрас, а никак не утверждение - все парсерсы мошенники, что пытаются тут разжечь хайп.
Третье - ваше выражение "У многих владельцев сайта мышление того школьника, который писал в журнал Xakep..." имеет значительно более голосовное утверждение на грани с оскорблением для этого самого большинства владельцев сайтов. Или я неправ, и вы можете предоставить данные на опросы, исследование откуда у вас подобные возникли мысли? С учетом того, что хрен знает как мало сколько сайтов заботяться об защите от парсинга.
p.s. Третий пункт - зеркальное отображение всей этой ситуации в целом. Вырвать слова из контекста, упуская саму суть, прицепиться к ней и начать хайп на тему - вай-вай-вай вы все врете, и вообще некрасиво так думать о владельцах сайтов!
Tenebrius
Так если они проделали титанический труд, и не хотят, чтобы результатами пользовались бесплатно, то данные логично закрыть и отдавать зарегистрированным пользователям за деньги, не?
Еще можно сделать API и организовать доступ по ключу.
Тогда и титанический труд будет оплачен, и те, кому удобнее автоматически данные собирать - заплатят, ключ получат и будут себе приятно работать.
Akturian
Перечитайте статью. Они в этом ключе и работают.
Tenebrius
Если там API и ключ, то как вообще может быть проблема парсинга?
Не выдавать данные без авторизации - и все, никто ничего не спарсит.
MilordCTO
Да реально, и концов баз в открытом доступе ещё нет, всё запаролено-зашифровано, вообще офигели. А ещё некоторые подлецы книги из общедоступных букв пишут, а потом запрещают их скачивать, вот где истинные мошенники то а.
Tolomuco
Конечно не об этом :)
Вопрос о том, почему вы всех, кто парсит ваши данные, мошенниками назвали. Не все же парсят для создания фишинговых сайтов, правильно?
Catherder Автор
Похоже, в наше время слово "мошенник" ассоциируется исключительно с соответствующей статьёй УК. Хотя в русском языке это всего навсего "Человек, к-рый занимается мошенничеством, плут, жулик" (https://slovarozhegova.ru/word.php?wordid=14975). Можно ли считать плутовством, жульничеством, нарушение пользовательского соглашения? Я полагаю - можно. Хоть это и не статья УК
leha_gorbunov
Вас спрашивают русским языком.
Данные на вашем сайте Вам не принадлежат. Запрещать кому-то использовать эти данные Вы не можете. Наличие данных в вашей БД, не означает, что эти данные не могут быть в другой БД у других лиц. Более того, законодательством разрешено использование данных в научных целях.
На каком основании Вы называете всех, кто парсит данные с вашего сайта, мошенниками?
Catherder Автор
Справедливости ради, далеко не все "данные на нашем сайте" нам не принадлежат. Хотя вопрос принадлежности данных мне видится очень скользким. Но тем не менее - да, большая часть данных, первичных, взятых из открытых источников, скажем так - общественное достояние. Никто с этим и не спорит. И могут они быть в любой БД у любых лиц. Научные цели мы даже поощряем и никогда не отказывали обращавшимся к нам учёным и даже студентам, имеющим такую потребность, в получении необходимых им данных. Есть условия, на которых мы предоставляем результаты нашей работы (https://www.rusprofile.ru/support/rules.html). Лично мне (не претендую на выражение политики компании) кажется, что получение данных с нарушением этих условий несколько нечестно. Уголовно ненаказуемо, но нечестно. Устраивают условия - соблюдай и пользуйся. Не устраивают - проходи мимо.
m03r
В статье написано лишь
Всех парсящих никто мошенниками, таким образом, не называл, потому что для этого действительно нет никаких оснований.
А вот проксировать сайт целиком, заменяя только наименование, логотип и, конечно же, вставляя свою рекламу — это поведение как минимум не очень честное, согласны?
И fail2ban тут решает.
nasingfaund
А можно примеры таких сайтов? Просто есть большое подозрение, что причина скрапинга (кстати не парсинга) совсем другая.
m03r
Прямо сейчас таких нет, но вебархив всё помнит. Вот такое было, например (это ещё старая версия в старом дизайне).
nasingfaund
Ок, спс, но это какой-то эксклюзив. Полное подстраивание под исходный сайт (перехват трафика - целевых запросов исходного сайта под себя: этим хорошо поисковики зарабатывают). Это не скрапинг и не парсинг (если уж так нравится это название, хотя это о другом вообще-то), а клоакинг какой-то. И даже название близкое подобрано. Вообще странно, что не пытаетесь создать - зарегистрировать свою торговую марку. Название сайта - часто достаточно слабая для торговой марки штука. Просто можно процентов на 50% сказать, что могли скрапить-харвестить-*парсить* у Вас, то, чего нет в исходниках, то, что требует большой работы по обработке. Суды-торги-приставы. А самое интересное те контакты, которые пользователи дают Вам (это проверенные Вами-пользователями данные) и они имеют 95-97% точность. Ну и сотовые телефоны из ЕГРЮЛа ЮЛов. Но это ж все было до закрытия всех этих данных.
MilordCTO
В статье речь о парсинге, а не о спарринге.
MilordCTO
Конечно просто так ничего не принадлежит, вот такие набегут и всё поделят, ещё нужна правовая система и люди, которые её защищают. Слава богу у нас это есть - см. интеллектуальные права на базы данных.
MilordCTO
А на каком основании вы запрещаете ему называть мошенников мошенниками? Вам не пренодлежит право определять какое у него право кого как своим языком называть, каким бы ваш язык не был. Это свободная пока ещё страна со свободным интернетом.
vilgeforce
Мошенничество - всего-навсего преступление, и человек, совершающий преступление - преступник. Всего лишь такая вот загогулина...
MilordCTO
ну и? крадёшь данные - ты преступник, чего удивляться, уголовный кодекс в помощь.
charypopper
Вы жонглируете терминами и юлите с ответом. Вот 2 определения слова мошенничество (раз и два) и т.к., внезапно, все люди разные - то и вопрос всплывает куча - в чем хищение, если у вас все на месте? При копировании становится меньше информации? Почему агрегация или выборка данных это имущество? Да и в целом, есть очень интересные взгляды на интеллектуальную собственность. Собрать данные из открытых источников и сделать то, что не доделали другие - вроде круто, но покрывать это все кучей запретов, которые держатся на пользовательском соглашении - хз. Многие из opensource сообщества косо бы смотрели, имхо
m03r
Тут, в общем-то, вся ветка и началась с жонглирования терминами. Исходный вопрос сформулирован, как мне кажется, намеренно провокативно, в духе «перестали ли вы пить коньяк по утрам». Мошенники в статье упомянуты лишь один раз в том контексте, что fail2ban от них защищает. Частично.
Что касается «при копировании становится меньше информации», то эта тема столько раз обсуждалась в контексте пиратства, что добавить тут, кажется, нечего.
PereslavlFoto
При копировании становится меньше доходной, прибыльной, выгодной, наваристой, корыстной, барышной информации.
MilordCTO
Открою для вас сакральный секрет, но что в определённой науке означает одно, в другой может означать совсем другое, а в быту третье. Впрочем, не все из трёх определений за три попытки получится могут выбрать правильное. Вполне допускаю, что и мошенники, парсящие данные, делают это просто по незнанию законов, тут это хорошо видно.
MilordCTO
Бытовое использование терминов пока никто не запрещал. Как и попытки хамского парсинга, которые все нормальные разработчики блокируют на раз два.
MilordCTO
Ну вот раз много взглядов есть, он свой и высказал, вы сами свои аргументы приведите в гармонию друг с другом сначала, как с вами можно дискутировать о чём-либо, если вы две противоположных точки зрения высказываете одновременно.
MAXH0
Вы так же называете "вором"
1. >> если воровство контента можно назвать бизнесом
2. >> Как поступать с ворами — решение владельца контента.
eventHorizont
Да как так-то?
Представьте, что яндекс не будет сам собирать данные, а просто будет выдавать результаты гугла (хотя гугл, само собой, этого не позволит), это не воровство, по-вашему?
Ответ дан в статье, и он — очевиден
MAXH0
Подставьте вместо "Яндекс" "DuckDuckGo" и подумайте еще раз.
Ответ не очевиден, он навязывается через прессуппозицию автора. Это и плохо. Пока очевидного ответа не дали.
Это можно сравнить с вопросом "Можно ли фотографировать раскладку продуктов в магазине". Он долгое время был спорным, но сейчас этот вопрос уже однозначно решен в пользу покупателей.
К сожалению, законодательно парсинг сайтов РФ находится пока вне правового поля. Но в США, например, он уже законодательно РАЗРЕШЁН. В силу этого риторика автора совершенно не понятна.
***
Мы уже живем в мире, где авторское право посредством различных законов негативно деформирует информационное пространство. Поэтому, по моему, риторика усугубляющая ситуацию неприемлема. Мошенником человек становится опубликовав сайт для фишинга, а вором - украв деньги с кредитки. И ни как иначе!
eventHorizont
Сдается мне, что мы говорим с вами о разных вещах.
Я утверждаю, что со стороны автора слово "вор" — это не оскорбление ни вам, ни тем другим, кто занимается парсингом. А вы это слово, изначально направленное на абстрактного похитителя интеллектуальной собственности, почему-то берете на свой счет (я, кстати, сам не раз парсил разнообразные источники и не вижу в этом ничего плохого).
Поясню. С точки зрения агрегатора информации, заработком которого является ее конечный вид — это и есть результат его труда. И тот, кто потенциально ее может получить в корыстных целях, для него является вором.
p.s. негативно деформирует == это позитивно формирует?)
Catherder Автор
Вообще интересную тему подняли. Следует ли считать жульничеством использование результатов чужого труда не на тех условиях, на которых эти результаты предлагаются?
Dvlbug
Ну можно также представить Гитхаб, с публичного репозитория, кто-то забрал код несмотря на лицензию.
Вариант один переводить в правовое поле
MAXH0
Хороший пример. Бот Copilot - цитирует код не взирая на лицензию. Это воровство или мошенничество? А если просто жульничество, то оно добросовестное или нет?
GraY_i3
Может, имелось в виду - халявщик, который любит приходить на все готовенькое. Не затрачивая время на сбор, хранение и анализ данных.
+ создается нагрузка на сайт
Данные могут использоваться по разному, кто-то фишингом занимается, кто-то использует данные что-бы разместить на своем сервисе и продавать их. А кто-то может порочить имя делая полный клон.
vilgeforce
К мошенничеству авторское право не имеет никакого отношения
MilordCTO
ну так это и не автореферат докторской по юриспруденции, не? если у профессора сиськи 5-го размера надо на них смотреть, а не на доску?
MilordCTO
Давайте вы ещё раз подумаете, где и кто кроме вас сказал, что в парсинге обман?
bak
В штатах недавно суд признал парсинг законным, а противодействие ему наоборот не законным.
Было бы дело в штатах - вас могли бы засудить за ваши действия.
Catherder Автор
Вполне возможно. Но мы российская компания, и действуем в российском правовом поле. Лично мне далеко не всё нравится, но уж какие есть у нас законы, такие и соблюдаем.
me21
Странно, а вот, например, New York Times требует подписку, чтобы читать их статьи. Пэйволл в чистом виде. Ваш лимит бесплатных статей вышел, говорит. Это ли не нарушение закона? Почему их ещё не засудили?
Или речь о том, что юзерам, оплатившим подписку, нужно отдавать всё? Тогда, наверное, авторам rusprofile нужно вводить оплату за каждую просмотренную страницу, видимо.
bak
Потому что paywall в NYT и других изданиях заточен в первую очередь на людей - это модель монетизации в которой частых пользователей пытаются усадить на подписку.
Конкретно про NYT не знаю, но к примеру на towardsdatascience с такой же моделью - можно автоматически качать контент сколько влезет, и если вы явно не начнете в своем парсере сохранять куки - paywall вы даже не увидите.