За последнее десятилетие я реализовал много проектов, связанных с агрегацией и анализом контента. Часто агрегация включает в себя снятие данных со сторонних сайтов, то есть скрапинг. Хотя я стараюсь избегать этого термина. Он превратился в некий ярлык, с которым связано много заблуждений. Основное заблуждение в том, что веб-скрапинг можно заблокировать с помощью X, Y, Z.

tl; dr; Нельзя.

С точки зрения бизнеса


На прошлой неделе я встретился с высокопоставленным руководителем из отрасли, в которой развиваю свой бизнес GO2CINEMA. Без сомнения, это один из самых умных и знающих людей в киноиндустрии.

Бизнес-модель GO2CINEMA основана на агрегировании из разных источников информации о расписании сеансов, свободных местах и стоимости билетов, а также выполнении запросов на покупку билетов на этих веб-сайтах от имени пользователя.

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

Да, тщательное исследование. Но всё-таки есть способы, чтобы тебя заблокировать. *ухмыляется*

Нет, парень, нет таких способов.

Реальные пользователи не отличаются от ботов


У людей, далёких от IT, присутствует эдакое идеализированное представление о программировании как в компьютерных играх 80-х — вы надеваете шлем виртуальной реальности и погружаетесь в Сеть. На самом деле вся информация и все взаимодействия — это нули и единицы. Здесь нет ничего человеческого. Нет различия между данными, введёнными компьютером или человеком.


Инспектирование веб-трафика

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

Если не верите, давайте рассмотрим все технические способы, которыми веб-сайт может попытаться заблокировать бота на примере моего бизнеса.

Технические контрмеры


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

Блокировка юзер-агента


Каждый HTTP-запрос содержит HTTP-заголовки, в том числе юзер-агент — идентификатор HTTP-клиента. Поэтому кинотеатр может идентифицировать ботов по информации из заголовков HTTP — и блокировать их.

Решение: поддельные заголовки HTTP для имитации реальных пользователей.

Пример: боты GO2CINEMA используют заголовки HTTP, которые имитируют реальные пользовательские сессии (например, в браузере Google Chrome). Заголовки HTTP рандомизируются между сеансами скрапинга.

Вывод: невозможно заблокировать ботов GO2CINEMA, используя отправленные клиентом HTTP-метаданные, такие как HTTP-заголовки, не блокируя реальных пользователей.

Блокировка IP-адресов


Кинотеатр может попытаться определить и заблокировать IP-адреса ботов GO2CINEMA.

Решение: «поддельные» IP-адреса (использование прокси).


Массовая идентификация

Пример:

GO2CINEMA использует комбинацию из шедулинга запросов и ротации IP, чтобы избежать идентифицируемых шаблонов поведения бота. Вот некоторые из мер предосторожности:

  1. Рандомизация IP-адресов.
  2. Выделение IP-адресов, которые географически как можно ближе к кинотеатру.
  3. Сохранение выделенного IP-адреса на время сеанса скрапинга.
  4. Пул прокси меняется каждые 24 часа.

Стоит отметить, что в текущей установке есть один недостаток: IP-адреса (прокси) зарегистрированы на различные дата-центры, а не на домашние адреса, как у реальных людей. Теоретически, кинотеатр может получить список подсетей всех дата-центров Великобритании — и заблокировать их. Это успешно заблокирует ботов в текущих настройках. Однако:

  1. Это потребует затрат. Например, такие услуги предоставляют MaxMind (база c IP-адресами анонимайзеров, прокси и VPN, цена не разглашается) и Blocked ($12 000 в год).
  2. Это может привести к блокировке реальных пользователей.

Netflix — пример провайдера, который блокирует IP-адреса известных VPN и прокси.

Если кинотеатры начнут блокировать IP-адреса дата-центров, придётся использовать IP домашних пользователей через прокси домашних адресов вроде Luminati. У такого подхода два недостатка:

  1. Стоимость (наш текущий трафик обойдётся в 1000 фунтов стерлингов в месяц).
  2. Надёжность. Работоспособность и скорость прокси домашних адресов сложно предсказать.

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

Важно подчеркнуть, что теоретически можно различить HTTP-запросы людей и ботов по шаблонам сёрфинга (см. раздел «Невидимая капча»). Но будет очень трудно определить HTTP-запросы именно от ботов GO2CINEMA (по причинам, указанным в разделе «Блокировка юзер-агента»).

Вывод: крайне трудно заблокировать ботов GO2CINEMA по чёрному списку IP-адресов, потому что 1) крайне трудно идентифицировать ботов и 2) у нас есть доступ большому количеству IP-адресов дата-центров и домашних пользователей.

Блокировка по IP не помешает нашим ботам продолжать скрапинг сайтов кинотеатров.

Использование капчи


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

Решение: API для решения капчи.


Полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей (CAPTCHA)

Капча только добавит неудобств обычным пользователям. Все методы капчи (в том числе для reCAPTCHA от Google ) легко обходятся с помощью сторонних сервисов вроде 2Captcha. В этих сервисах реальные люди решают задачи, поставленные перед нашим ботом. Стоимость услуг минимальна (например, 2 фунта за 1000 задач).

Вывод: добавление капчи не помешает нашим ботам продолжать скрапинг кинотеатров.

Невидимая капча


Кинотеатры могут использовать механизмы идентификации и блокировки ботов на основе поведения (так называемую «невидимую капчу»).

Невидимая капча использует комбинацию различных переменных для оценки вероятности того, что взаимодействия конкретного клиента автоматизированы. Нет единого рецепта, как это реализовать. Различные провайдеры используют разные параметры для профилирования пользователей. Эта услуга предоставляется некоторыми CDN (например, Cloudflare) и традиционными провайдерами капчи, как Google reCAPTCHA.

По словам бывшего руководителя отдела Google по распознаванию кликфрода Шумана Гоземаджумдера, эта возможность «создаёт новый тип проблем, которые очень продвинутые боты по-прежнему могут обойти, но порождает гораздо меньше сложностей для реального человека».

Вывод: идентификация по профилям поведения не помешает нашим ботам продолжать скрапинг кинотеатров, это просто ещё одна проблема, которую нужно обойти.

Проверка электронной почты


Кинотеатр может потребовать проверки электронного письма для выполнения определённых действий, например, для бронирования.

Решение: одноразовые «ящики».


Сейчас я просто добавляю в статью картинки, потому что мне нравится автор — Kidmograph

Пример:

Сейчас кинотеатры уже требуют наличия адреса электронной почты для покупки билета. GO2CINEMA использует доменное имя go2cinema.mail для подтверждения бронирования. Для каждой транзакции создаётся новый адрес электронной почты (например, john1@go2cinema.mail). Письма, отправленные на сгенерированные ящики, недоступны пользователям GO2CINEMA.

Текущий подход имеет преимущества:

  1. Ограничивает возможности кинотеатров отслеживать индивидуальную активность пользователей.
  2. Мешает кинотеатрам рассылать маркетинговые письма нашим пользователям.

Недостаток в том, что кинотеатры могут легко идентифицировать и блокировать транзакции сервиса.

Если кинотеатры начнут активно блокировать домен электронной почты go2cinema.mail, можно предпринять что-нибудь из следующего:

  1. Купить оптом тысячи дешевых доменов.
  2. Использовать любую из существующих служб, предоставляющих временные адреса электронной почты (например, Mailinator).
  3. Создавать временные почтовые ящики у существующих крупных провайдеров (Yahoo, Gmail и т. д.).
  4. Выдать реальные адреса пользователей.

Вывод: проверка электронной почты не помешает нашим ботам продолжать скрапинг кинотеатров.

Мобильная проверка


Кинотеатр может потребовать от пользователя предоставить действительный номер мобильного телефона для завершения транзакции.

Решение: одноразовые мобильные номера.

Если процесс проверки включает в себя звонок или сообщение (например, нужно ввести номер, полученный на телефон), то можно использовать любого из виртуальных сотовых операторов (например, Twillio) для оформления временных мобильных номеров.

В отличие от временных адресов электронной почты, виртуальный телефонный номер стоит относительно дорого (например, 1 фунт в месяц за номер).

С другой стороны, добавление обязательной мобильной проверки маловероятно, потому что отрицательно скажется на работе кинотеатра по нескольким причинам:

  1. Стоимость SMS верификации.
  2. Потеря клиентов, у которых нет номера мобильного телефона или которые не желают им делиться.
  3. Сокращение диалога бронирования с точки зрения продукта (из практики это общее наблюдение, особенно в электронной коммерции).

Будет крайне экстремальным и беспрецедентным случаем, если кинотеатр пойдёт на такое.

Вывод: мобильная верификация не помешает нашим ботам продолжать скрапинг кинотеатров.

Блокирующий BIN


Кинотеатр может заблокировать наш банковский идентификационный номер (BIN).

Решение: подать в суд или выпустить карты в обычном банке (например, Barclays).

Пример:

GO2CINEMA использует для покупки билетов виртуальные дебетовые карты. Для каждого пользователя эмитируется виртуальная карта MasterCard через сервис Entropay. Entropay работает как банк, т. е. все его карты начинаются с BIN 522093. Теоретически, кинотеатр может заблокировать этот BIN.

Но блокировка BIN нарушит договор с платёжным шлюзом. Каждый такой договор включает правило по принятию любых карт. В случае с MasterCard эта политика указана в пункте правил 5.10.1:

5.10.1 Принятие всех Карт
Торговая точка должна принимать все действующие Карты без каких-либо исключений или предпочтений, если они предъявляются к оплате в надлежащем порядке. Торговая точка должна создавать равные условия для всех клиентов, желающих произвести оплату с помощью Карты.

По той же технической причине кинотеатры не могут заблокировать MoviePass в США:

«Мы полностью соблюдаем правила MasterCard, и AMC подписала соглашения как с их процессинговой компанией, так и с MasterCard. Чтобы заблокировать нас, они по сути должны отказаться от приёма MasterCard». — источник

Обратите внимание, что пункт о принятии всех карт в Европе отличается от США. В Европе торговой точке разрешено полностью блокировать какой-нибудь тип карт, например, все предоплаченные карты.

Вывод: блокировка BIN не помешает нашим ботам продолжать скрапинг кинотеатров.

Изменение структуры сайта


Кинотеатр может без предупреждения изменить структуру сайта.

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

Если предположить, что наш скрапер зависит от структуры веб-сайта, то:

  • Изменения структуры сайта происходят редко.
  • Это не сильно отличается от изменений API.
  • Наши системы уведомят, как только это произойдёт.
  • Это повлияет также на реальных пользователей.

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

Защита API с помощью ключа API


Другой бизнесмен (владелец кинотеатра) предположил, что кинотеатр может заблокировать GO2CINEMA, ограничив доступ к API с помощью ключа API.

Он: Кинотеатр может просто обновить свой API, чтобы требовать ключ API.
Я: Какой API?
Он: API для доступа к кинопоказам.
Я: Эта информация опубликована на сайте?
Он: Да.
Я: Тогда клиент браузера должен иметь доступ к этому API для просмотра контента на сайте.

На этом конкретном сайте, который он привёл в качестве примера, ключ API был жёстко прописан в исходном коде.

Вывод: ограничение доступа к API с помощью ключа API не является эффективной стратегией для ограничения скрапинга, если это открытый API.

Резюме


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

Стоит подчеркнуть, что хотя ни один из этих методов не блокирует ботов, внедрение некоторых или всех этих механизмов дорого обойдётся кинотеатру с точки зрения 1) стоимости технической разработки и 2) неудобств для реальных пользователей.

Блокировка 98% скраперов


Хотя нельзя заблокировать все скраперы, но вы можете помешать или заблокировать большинство из них, используя комбинацию вышеуказанных методов.

Стоит ли это ваших усилий? Ответ зависит от следующих факторов:

  • Какое влияние оказывают боты скраперов на ваш сайт/бизнес?
  • Повлияет ли это на реальных пользователей?

Чаще всего ответ заключается в том, что оно того не стоит.

Юридические препоны


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

Короткий ответ: нет (или крайне маловероятно, трудно и займёт много лет).

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

Заключительные замечания


Похоже, что многие читатели решили, что мы развязали технологическую войну с кинотеатрами (см. комментарии Reddit). Это не так.

За исключением слухов о попытке кинотеатра X заблокировать наши IP-адреса (упомянутые в разделе «Блокировка IP-адресов»), ни один кинотеатр не пытался нас заблокировать, используя какой-то из перечисленных методов. Цель этой статьи — поделиться кратким описанием сценариев «что, если», подготовленных как резервный план в рамках привлечения венчурного финансирования.

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

Если вы собираетесь скрапить чужой контент, сначала спросите у владельца сайта, если ли у него API. Это сэкономит время и деньги вам и владельцу сайта.

Комментарии (153)


  1. token
    12.04.2018 12:37

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


    1. algotrader2013
      13.04.2018 09:22

      просто забить и предоставлять бесплатное легковесное API

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


      1. token
        13.04.2018 10:26

        Если вы предоставляете сверх — уникальный контент — то вариантов тут много: от выпуска своего сайта на CD — дисках, то закрытия вкусной инфы за логином паролем и на платной основе. Любой человек который хочет создать легитимный клон вашего сайта — может это сделать и без скрэппинга — тупым копипастом.


  1. VBKesha
    12.04.2018 12:58

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


    1. iit
      12.04.2018 15:20

      И гугло-яндекс-боты соответственно понижали вас поисковой выдаче =)


      1. VBKesha
        12.04.2018 15:26

        Во первых там было совершенно наплевать на выдачу. А во вторых блокировался конкретный бот, который был явно не гугол и не яндекс, и игнорил файл robots.txt Но у него было предсказуемое поведение, и в общем 5-7 дней потыкавшись и накачав всякого хлама он пропал и больше не возвращался.


        1. iit
          13.04.2018 07:53

          1) Думаю что это стоило уточнить, не стоит вести всех ботов под одну гребенку
          2) Нет гарантии что те, кто писали бота просто оптимизировали его таким образом чтобы он мимикрировал под других ботов или пользователей.


      1. redfs
        12.04.2018 17:21

        И гугло-яндекс-боты соответственно понижали вас поисковой выдаче =)
        Да с чего бы вдруг? Вообще не вижу никакой связи. У нас был аналогичный и, по моему, единственный случай — набегал бот с User-Agent: WebIndex, создавал большую нагрузку и был заблокирован только из за этого. Остальных ботов это никак не коснулось, пусть сканят на здоровье.


        1. iit
          13.04.2018 07:58

          Такой подход понятен, но вместо того чтобы блокировать более оптимальные пусть и более затратные способы это тротлинг или CDN+cache.


          В первом случае говорим что мол из вашей сети подозрительные запросы — введите капчу
          Во втором не паримся и просто ставим тот же Cloudflare


          1. redfs
            13.04.2018 08:35

            более оптимальные
            Понятие оптимальности не является универсальным. В вашем случае это могут быть оптимальные способы, в моём — они совершенно не подходят.


  1. thatsme
    12.04.2018 12:59
    +1

    Ничего нового. Вся статья умещается в словосочетание «Цена вопроса». Но статья очень полезна, что-бы давать на неё ссылку людям далёким от IT.


    1. questor
      13.04.2018 12:12

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


  1. Zibx
    12.04.2018 13:11
    +1

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


    1. CrazyRad
      12.04.2018 13:22
      +1

      Навскидку сразу приходит на ум заход бота на сайт браузером, получение картинки страницы и распознавание текста и образов с картинки. Главный вопрос остается — какие выгоды и стоимость такого решения для сайта? Если выгода большая, то и для владельца ботов будет тоже выгодно обойти.


      1. DrZlodberg
        12.04.2018 13:42

        На самом деле можно проще. Резрешить все CSS-правила и по итогу просто определить, что и где видно, а невидимое выкинуть. На выходе останутся текст, картинки и их расположение без привязки к структуре.


      1. movis08
        12.04.2018 14:41
        +1

        Главный вопрос остается — какие выгоды и стоимость такого решения для сайта?

        Особенно порадуются пользователи которые будут видеть, то что предоставит им гугл, яндекс и тд на запрос об этом сайте )))


        1. mayorovp
          12.04.2018 15:41

          Пользователи как раз ничего не увидят, ибо не найдут :-)


      1. bro-dev
        13.04.2018 06:37
        +1

        Ок, а как такое решите, сделать весь текст на странице в виде каптчи.


    1. token
      12.04.2018 13:38

      А как же серверный вариант хрома?


    1. Free_ze
      12.04.2018 13:50

      Акссессабилити, кэширование и SEO будет на высоте)


      1. demimurych
        12.04.2018 14:22

        SEO для интерфейса покупки билета? Вы собрались кешировать два килобайта текстовой информации? Аксесабилити тоже не причем, потому что для пользователя все будет так же как и в первый раз — визуально. Для бота все будет по другому.
        Суть предлагаемого метода как раз в том, чтобы для пользователя все было так же как и всегда, для сердств которыми бот парсит страницу всегда по разному. И такое парсится только если известен алгоритм формирования страницы, или как сказано выше — скриншот и распознавание.


        1. Free_ze
          12.04.2018 14:35
          +1

          SEO для интерфейса покупки билета? Вы собрались кешировать два килобайта текстовой информации?
          На киносеансах свет клином не сошелся. Как насчет фотоблогов, авторских статей и публичных интерфейсов баз данных? Боты бывают как плохие, так и вполне хорошие — поисковые. Как же специальная разметка для виджетов гугла и яндекса?
          Аксесабилити тоже не причем, потому что для пользователя все будет так же как и в первый раз — визуально
          Кажется, мы это слово трактуем по-разному. Если юзер пользуется скринридером, ему ваш CSS ни о чем не скажет, будет такая же семантическа каша, как и для бота.


          1. ainoneko
            13.04.2018 04:29

            Если юзер пользуется скринридером,
            Видимо, слабовидящие для кинотеатра не так важны?


            1. TheShock
              13.04.2018 04:34

              Слабовидящие и даже полностью незрячие играют в игрушки, в том числе в GTA и CounterStrike. Уверен, что и в кинотеатры они точно так же ходят.


            1. Free_ze
              13.04.2018 09:00

              Скринридерами пользуются не только абсолютно слепые.
              И еще раз:

              На киносеансах свет клином не сошелся.


    1. Kwent
      12.04.2018 13:56

      Я юзаю Selenium, а вообще если изменения структуры сильные (со сменой css и всего-всего), то это считай новый сайт, и тут ничего нового не придумаешь, кроме как адаптироваться к изменениям, правда обычно адаптация стоит сильно дешевле, чем изменения хозяину


    1. Kane
      12.04.2018 14:38

      Это повлияет на пользователей. Слепые пользователи не смогут пользоваться сайтом, readability перестанет работать, копирование сломается, сайт перестанет находиться в поиске


    1. xmaster83
      13.04.2018 01:55

      В Beautifulsoup есть обратная рекурсия и ещё много чего, практически всё решается, ну а если совсем край то нейронки в помощ, ну и про Selenium не стоит забывать, Tor-сервера в docker-ах тоже помогает + управление на celery.


  1. Aversis
    12.04.2018 13:47

    А как насчет shadow-бана? Все описанные методы предполагают активные действия кинотеатров на присутствие ботов. А что, если боты и их создатели не будут видеть активного сопротивления и при этом получаемый контент будет «белым шумом» или не релевантным?


    1. ildarz
      12.04.2018 14:56

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


    1. ArsenAbakarov
      12.04.2018 17:54

      скраппинг делается не ради фана, кто-то получает контент и анализирует, если будет что-то левое, менеджер это заметит и скажет разработчику о проблеме


    1. baarsik
      13.04.2018 11:25
      +1

      А затем, если это выяснится, то будет претензия: почему клиент (который по факту бот, но это не имеет значения) купил билет, а он по факту не существует. Shadow ban можно применить только там, где нет оплаты товаров.


      1. Aversis
        13.04.2018 13:07

        Разве боты покупают товары, услуги?


        1. baarsik
          13.04.2018 15:21

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



  1. Rinz
    12.04.2018 14:52

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


    1. Free_ze
      12.04.2018 15:06

      Selenium WebDriver + PhantomJS решают эту проблему из коробки.


      1. Fedcomp
        12.04.2018 21:43

        PhantomJS труп


        1. grimalschi
          13.04.2018 01:45

          SlimerJS – превосходная замена.


          1. Fedcomp
            13.04.2018 08:28

            PhantomJS отвалился потому что хром теперь нативно умеет в headless. Зачем продолжать сидеть на костылях?


            1. Free_ze
              13.04.2018 09:03

              PhantomJS отвалился потому что хром теперь нативно умеет...

              Л — логика.


            1. grimalschi
              13.04.2018 11:01

              А headless chrome умеет все то, что умеет PhantomJS? Насколько я знаю — пока не умеет.


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


              А уж про то, насколько удобна связка CasperJS + SlimerJS я и не говорю.


        1. el777
          13.04.2018 09:59

          Не потому что сама технология плоха, а только потому что есть нативный Chrome Headless.


          1. apapacy
            13.04.2018 10:08

            Актуальные версии phantomjs практически не отличаются от браузера. Я юзаю его для prerender. Сейчас можно заменить на chrome. Я попробовал но пока отказался т.к. работает заметно медленнее


            1. el777
              13.04.2018 12:44

              Возможно, я предпочитаю Google Headless, т.к. через какое-то время разработка фантома прекратится.


              1. apapacy
                13.04.2018 13:20

                Да действительно github.com/ariya/phantomjs/issues/15344
                Собственно не так уж важно какой движок запускать.


    1. zim32
      12.04.2018 17:36

      Phantom на страницу заходит выполняет джаваскрипт вроде return $scope (или любой другой источник данных) и получает все на блюдечке даже парсить не надо ничего.


      1. Fedcomp
        13.04.2018 08:29
        -1

        PhantomJS труп


    1. ArsenAbakarov
      12.04.2018 17:56

      смешно


  1. Foveator
    12.04.2018 14:52
    -2

    Очень аргументированная статья. Прямо руки опускаются. Но вот вопрос.
    Сможет ли квалификация автора преодолеть наше изобретение
    СПОСОБ ИНТЕРАКТИВНОГО ТЕЛЕВИДЕНИЯ, ИСПОЛЬЗУЮЩИЙ ФОВЕАЦИОННЫЕ СВОЙСТВА ГЛАЗ ИНДИВИДУАЛЬНЫХ И ГРУППОВЫХ ПОЛЬЗОВАТЕЛЕЙ И ЗАЩИЩАЮЩИЙ ВИДЕОИНФОРМАЦИЮ ОТ НЕСАНКЦИОНИРОВАННОГО ДОСТУПА, РАСПРОСТРАНЕНИЯ И ИСПОЛЬЗОВАНИЯ
    Зарегистрированный в США. Патент 7950029


    https://patents.google.com/patent/US7950029


    и в России патент 2220514


    http://www1.fips.ru/fips_servl/fips_servlet?DB=RUPAT&rn=1189&DocNumber=2220514&TypeFile=html


    Может пора перейти на сторону защиты контента.


    1. achekalin
      12.04.2018 21:32

      А надо ли обходить?

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

      Но вы защищайте, никто не против.


    1. Regis
      13.04.2018 00:28

      Эм… вы предлагаете пользователям для покупки билетов в кинотеатр у себя веб-камеру включать? А содержимое сайта транслировать как видео-поток? :)


    1. Alexsandr_SE
      13.04.2018 14:21

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


      Дальше чем определить блокировать/не блокировать Пк или еще чего-то такое не взлетит.


      1. Foveator
        13.04.2018 17:23

        Один смотрит с устройством, все остальные без.

        Один смотрит с удовольствием, все остальные в комнате без.
        Дополнительное оборудование — EYETRACKER уже кажется взлетело.
        Немного присело до 100 долл. США за штуку, но сейчас временно поднялось до 300 долл.США за штуку.


  1. apapacy
    12.04.2018 15:34

    А как Вы обходите защиту от ботов в стиле habrahabr.ru/post/139931?
    Конечно можно запускать hedaless chrome но это же крайне медленно и затратно по ресурсам?


    1. apapacy
      12.04.2018 15:42

      Сорри не заметил что это перевод. Все слишком по-нашему сделано.


    1. Oreolek
      12.04.2018 16:38

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

      Если мы говорим об умных ботах, то брать headless chrome — это вообще самый разумный шаг. Это несложно (ставишь puppeteer и вперёд) и такого бота очень сложно отличить от реального пользователя chrome даже через Javascript, а со стороны веб-сервера тем более. То, что скорость и затраты RAM намного хуже, чем у тупых парсеров DOM — это приемлимые издержки.


      1. Iqorek
        12.04.2018 17:22

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


        1. Oreolek
          12.04.2018 17:56
          +1

          Вот желаю вам самому активно пользоваться сайтом, который вам будет майнить крипту или тормозить систему после третьей открытой вкладки. МО тоже не панацея, у него будут ложные попадания. Страдать будут, например, подозрительные пользователи Adblock.


          1. Iqorek
            12.04.2018 18:01

            >Вот желаю вам самому активно пользоваться сайтом…
            Только «если юзер превысит порог активности»
            >МО тоже не панацея
            Не панацея, но МО удешевит защиту и увеличит цену взлома.


        1. Stecenko
          12.04.2018 18:32
          +2

          Селениум позволяет имитировать перемещение курсора, если надо. Просто будет сделан еще один виток борьбы брони и снаряда.
          Паттерны поведения также будут сымитированы.
          Боюсь, даже отдача контента только подтвердившим свою учетку на госуслугах (и фига всем остальным) не спасет :-)


          1. Iqorek
            12.04.2018 22:28

            «Просто будет сделан еще один виток борьбы брони и снаряда. „
            Да. И можно навскидку еще несколько витков накрутить. Поэтому “сопротивление бесполезно», это открытый вопрос. И победит не тот, кто взламывает и не тот, кто защищает, а тот настырней.


            1. ainoneko
              13.04.2018 04:39

              И победит не тот, кто взламывает и не тот, кто защищает, а тот настырней.
              Зависит от определения победы.


        1. bro-dev
          13.04.2018 06:22

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


  1. Iqorek
    12.04.2018 17:02

    Заблокировать нельзя, но можно увеличить цену сканирования до того момента, когда это станет не рентабельным.


  1. Stas911
    12.04.2018 17:12

    Еще ботов можно выявлять и банить по их поведению на сайте, если подстраивать под паттерн человека — сбор данных будет очень медленный. А вообще, конечно, нет смысла в защитах — если надо все равно утащат, уж лучше, правда, отдельное API для них сделать (может даже за маленькую денюжку, зато с гарантированным интерфейсом), чтобы хоть сайт не валили.


    1. TheShock
      13.04.2018 04:14

      если подстраивать под паттерн человека — сбор данных будет очень медленный

      Или очень распараллеленный


  1. avost
    12.04.2018 19:33

    Хм. Не ставьте замки на двери вашей квартиры, домушник всё-равно вскроет любой.


    1. mayorovp
      12.04.2018 20:21

      Неверная аналогия. Аналог квартиры с замком на двери — приватный сайт, доступный ограниченному кругу лиц. А в статье рассматривается сайт для неограниченного круга лиц…


      1. avost
        13.04.2018 23:02

        По-моему, вполне верная, но если вам так угодно, — не ставьте замки на двери музея с Джокондой, воры всё-равно вскроют любой…



        1. mayorovp
          14.04.2018 07:35

          Скорее так: когда ставите замки на двери музея с Джокондой, помните — вам все равно придется открыть их утром. :-)


    1. Snorqq
      13.04.2018 07:16
      +1

      Этда, аналогия некоррекна. Корректной будет: не ставьте двух ментов около скамейки в парке, просто сделайте ее попрочнее, но без фанатизма. Скамейку с ментами не своруют и не поломают, зато под ментовским надзором и целующихся парочек (ради которых, собственно, все эти архитектурные фурнитуры и инсталлируются) в живописном уголке парка не будет.


      1. Snipe
        13.04.2018 11:06

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


  1. wawa
    12.04.2018 19:35

    Касаемо юридической стороны, в США дошедшие до суда прецеденты скрапинга чаще разрешались в пользу истца (т.е. владельца сайта). Там невозможно скрапить facebook например. Что-то в этом кажется мне противоречивым — ведь данные открыты для любого юзера сети, т.е. через мой браузер я легко могу эти данные получить. Что изменится, если я буду использовать скрипт, который ровно как и браузер скопирует эти данные в RAM моего компьютера.


    1. Free_ze
      12.04.2018 19:46

      Коммерческая выгода? (конкуренция с «жертвой» и тому подобное)
      Сдается мне, что здесь определяющим фактором является мотивация, а не инструмент.


      1. wawa
        12.04.2018 20:48

        А почему это не может быть честной конкуренцией?


        1. Free_ze
          12.04.2018 22:44

          Переманивание юзеров тыренным контентом? Ну так себе.


          1. wawa
            13.04.2018 06:46

            Мне видится разница между тырить авторский контент (статьи, видео, аудио) и просто список событий где/когда/стоимость. Авиасейлс вам в пример.
            Более того, не всегда скрапинг осуществляется ради копипаста. Бывает «тыренный» контент проходит обработку и уже полученные данные (например статистич. метрики) располагаются на сайте скрапера. Вы тоже это расцените как «тырить контент»? А гугл/яндекс получается тоже контент тырят?


            1. Free_ze
              13.04.2018 11:22

              Мне видится разница между тырить авторский контент (статьи, видео, аудио) и просто список событий где/когда/стоимость.
              Элементарно аудитория скорее предпочтет пользоваться агрегатором, чем ползать по десятку сайтов. То есть такой копипастинг напрямую наносит ущерб сайтам-источникам.

              Бывает «тыренный» контент проходит обработку и уже полученные данные (например статистич. метрики) располагаются на сайте скрапера.
              То есть уже не копипастинг, а самодельный контент по мотивам, да еще наверняка со ссылкой на оригинал. Тут вряд ли есть конкуренция, а возможно даже наоборот — партнерство и PR.
              Но подобным разделением мух от котлет как раз и занимаются суды.


              1. wawa
                13.04.2018 13:57

                Ок. Ваша мысль ясна. А что насчет сбора данных из фейсбука, допустим на предмет упоминания каких-то ключевых слов, как это делают сервисы youscan, iqbuzz, крибрум и тд? Это нарушает чьи-то права?


                1. Free_ze
                  13.04.2018 14:06

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


                  1. wawa
                    13.04.2018 15:25

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


                    1. Free_ze
                      13.04.2018 16:22

                      То, что видно — не означает, что это можно собирать автоматизированно и использовать для коммерческой выгоды.


  1. nlog
    12.04.2018 19:35

    Сайты, сделанные на Adobe Flash или MS Silverlight, наверняка добавляли головной боли разработчикам ботов. Но это уже в прошлом.


    1. algotrader2013
      12.04.2018 22:01

      могу ошибаться, но в будущем ведь WebAssembly придет. Или там все равно html останется?


      1. darth_dolphi
        12.04.2018 22:39

        WebAssembly будем дезассемблировать=))


      1. Ranwise
        13.04.2018 07:04

        WebAssembly все равно будет преобразован в человеко-читаемый формат…


        1. vikarti
          14.04.2018 07:35

          WebAssembly + средства запутывания кода уровня VMProtect'а + отрисовка на Canvas (также как это OnlyOffice делает, им это позволяет шикарный веб-редактор документов сделать, намного лучше всех других) или вообще через WebGL.
          Правда поисковики тоже не найдут и все равно можно парсить — пусть и придется OCR прикручивать.


          1. darth_dolphi
            14.04.2018 09:33

            Упоминая такие технологии все забывают что какая бы технология для рендеринга данных не использовалась — это только рендер — данные в любом случае приезжают от сервера в формате который можно преобразовать в текстовый и отпарсить. Всё зависит только от суммы в $ которую придётся потратить на преобразование данных.


  1. firk
    12.04.2018 20:25

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


    1. wawa
      12.04.2018 20:49

      А что здесь аморального? Серьезно, я хотел бы увидеть этот критерий.


      1. firk
        13.04.2018 11:36

        Кража контента, очевидно.


        1. wawa
          13.04.2018 14:09

          А что он крадет? Авторские статьи? Нет. Он собирает список фактов фильм/время/место/стоимость. Думаю разница существенна. Когда контент — статья, то копипаст — кража, а в случае пересказа фактов — всё чисто. В случае go2cinema это именно перечисление фактов событий. Что бы яснее было: Допустим Медуза написала статью о каком-то событии в мировой политике (например в Кракожии 1 апреля выборы будут). А я опираясь на эту статью пишу у себя на сайте/твитере о факте события (предстоящего). В этом случае даже ссылка на источник не нужна.


          1. Free_ze
            13.04.2018 14:51

            У меня есть вопросы к постановке вопросов)
            Что является контентом сайта с расписаниями?
            Помогает ли чужой контент пользователям не заходить на оригинальный сайт?


            1. wawa
              13.04.2018 15:15

              Контент сайта с расписанием: какой фильм — какой кинотеатр — в какое время — цена билета.
              Не могу считать скрапинг такого контента кражой. Это освещение фактов, что в таком-то кинотеатре в такое-то время пройдет показ фильма. Никаких рецензий и отзывов там не будет (ну или будут цитаты из рецензий с ссылкой на источник).

              «Помогает ли чужой контент пользователям не заходить на оригинальный сайт?»
              А это уже имхо не важно, кражи контента у сайта не происходит.


              1. Free_ze
                13.04.2018 16:29

                А это уже имхо не важно, кражи контента у сайта не происходит.
                Ущерб для сайта вполне очевидный: если нет юзеров, то они не смотрят рекламу, т.е. не приносят доход от партнеров и/или не привязываются к конкретному заведению (реклама премьеры).


                1. iig
                  13.04.2018 16:57

                  если нет юзеров, то они не смотрят рекламу


                  Кинотеатр зарабатывает деньги рекламой на своем сайте… Плохи дела.

                  не привязываются к конкретному заведению


                  Билеты в кинотеатр «Красная звезда» действительны только в этом кинотеатре. Какая еще привязка нужна?


                  1. Free_ze
                    13.04.2018 17:15

                    Кинотеатр зарабатывает деньги рекламой на своем сайте… Плохи дела.

                    Почему бы и нет?) Например, кинотеатр в БЦ. Почему бы не порекламировать сервисы в двух шагах?

                    Какая еще привязка нужна?
                    Чтобы вы в эту «Красную звезду» пришли через месяц снова пришли на премьеру чего-то интересного. Зайдите на сайт любого кинотеатра, там куча всякой ерунды, типа конкурсов, мероприятий и конечно же инстаграм организации (=


                1. wawa
                  13.04.2018 18:11

                  То что скрапингом автор уводит юзеров у сайта — не критерий наличия нарушений, имхо. Критерием имхо должна быть совокупность двух факторов: что это за данные и как именно эти данные используются после скрапинга. Если это просто перечень событий, а не авторская статья, то всё чисто — можно показывать у себя на сайте. Если это авторская статья, то копипастить ее нельзя. Однако можно выкладывать статистику по этой статье (категория, теги, кол-во слов, орф. ошибок, комментариев, прочтений если счетчик есть, соотношение тональности комментариев). НО это мое видение относительно понятия «аморальных шагов», с которого и началась эта ветка, а не относительно законов той или иной юрисдикции.


  1. achekalin
    12.04.2018 21:38

    Защититься на 100% трудновато, но этим не обязательно заниматься в лоб. Да, часть отобьется через отсечку диапазонов ДЦ и известных VPN сервисов, часть через анализ поведения. Ну а части скормят такую мякину, что сервис-аггрегатор по факту введёт юзеров в заблуждение, и будут отвечать перед ними.

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


    1. Free_ze
      13.04.2018 11:31

      и известных VPN сервисов
      Многие сервисы этим злоупотребляют и обычные юзеры с VPN негодуют.


      1. achekalin
        13.04.2018 11:44

        Полностью согласен. Вопрос как обычно в том, что сервисы, имеющие данные, не хотят делать удобнее, лучше, понятнее людям (пример — те же кинотеатры из поста просят у юзеров мыло, и рассылаю на него спам, когда юзер всего-то хотел купить билет; это минимум дурной тон, но кинотеатры делают допущение, что «куда они денутся»). Сервис сбора данных подает их в лучшем, более понятном виде (еще, наверное, и цены сравнивает, давая возможность выбрать поудобнее сеанс и подешевле билет), и это удобно. Сделали бы владельцы контента удобно людям, а не себе — сторонним сервисам бы не было бы места для жизни.

        Сделать можно и по другому: текст для просмотра разложить на несколько картинок так, чтобы часть точке на кажой была прозрачной, и только если наложить через css одну на другую, получались бы слова. Сделай так — и будет большой гемор это собрать, тебя просто проигнорируют. Но тут возникает мыслишка «ой, нас же гугл не проиндексирует!»

        Вот и выбирай: либо всем, либо только для глаз людей (да-да, и слепые, скажем уже не смогут прочесть).

        А скраперы создают же проблемы не только сайтам, если уж по теме поста: тем же VPN тоже придется защищаться.


  1. boblenin
    12.04.2018 22:08

    В борьбе меча и щита побеждает кошелек.


  1. quwy
    12.04.2018 22:31

    Особенно бесят сайты, которые так трясутся над своим бесценным контентом, что даже выделение и/или копирование текста запрещают. Или при копировании добавляют в буфер кроме выделенного текста еще и всякий мусор типа своего адреса. На что вообще рассчет? Что юзер не глядя вставит этот бред в поле ввода и запостит куда-то в неизменном виде?

    Когда занимался предоставлением коммерческих интернет-площадок далеким от ИТ людям, чуть не каждый день прилетал ворос типа «как запретить копирование текста/картинок с моего сайта». И какое было расстройство, когда оказывалось, что никак. Некоторые даже делали полностью флешовый сайт, жертвуя доступностью в поисковиках, лишь бы чуть-чуть усложнить копировние того, что никому особо и не нужно.


    1. apapacy
      13.04.2018 00:20

      Защита от серьезных парсеров дело сложное. Тот кто тырит контент (то есть не хочет платить за контент или не хочет платить хотя бы элементарно людям которые будут вводить в базу данных технические характеристики товаров и т.п.) — не будет слишком много платить и за парсеры разработчику. Я например пока что отказываюсь когда мне предлагают сделать парсер на продажу. Т.к. прекрасно понимаю что тот заказчик который хочет тырить контент за свои скромные деньги поимеет всех и вся и потом когда сайт изменит структуру или забанит — то будет пытаться заставить работать бесплатно и это уже будет пожизненно.

      Но против такого дешевого парсинга и защиту поставить довольно просто. Ссылку я дал выше на то как это сделать (статья на Хабре (не моя))


  1. darth_dolphi
    12.04.2018 22:37

    Челендж от Cloudflare,у нас например, решается в автоматическом режиме. Но есть провайдеры обход защиты которых действительно сложный. К примеру Distil Networks. В целом я согласен с автором по поводу того, что лучшая защита нервов и машинного времени это публичное API. Что касается юридической стороны то автоматический сбор данных которые доступны без аутентификации — вообще не должен быть наказуем, т.к они публично доступны. Другое дело их использование.


  1. cat_crash
    13.04.2018 00:00

    Не до конца понятен вчем профит борьбы в целом. Ситуация с скрапингом в большенстве напоминает сценарий работы с гос организациями в постсоветском пространстве:
    — Мы сделали красивый интерфейс для доступа к вашим данным. Пользователи могут покупать билеты через нас
    — Мы вам данные не разрешали брать
    — Да, но у вас они и так не покупали. Мы вам помогаем зарабатывать
    — Пускай покупают с нашего сайта. А не хотят — не надо. Мы вам данные не давали
    По мотивам 42.tut.by/437580


    1. apapacy
      13.04.2018 00:49

      Не буду говорить что есть сайты где сам контент является ценностью — таких наверное немного.
      Я могу привести по крайней мере две причины.
      1) Одинаковый контент сильно понижает рейтинг у поисковых систем. Если например оригинал поисковик не успел проиндексировать а я уже благодаря парсингу успел за пару секунд опубликовать у себя копию то дальше поисковик скорее всего «назначит» оригиналом тот текст который проиндексирует первым.
      2) Для улучшения продажи нужны подробные описания, точные характеристики и изображения товаров. Я уже не говорю о там каком-то авторском тексте уникального содержания. Тот кто подключился к сайту с хорошей базой по описаниям товарам получает практически даром и может стать конкурентом, т.к. его интернет-магазин будет выглядеть уже солидно.


      1. cat_crash
        13.04.2018 17:51

        Мой вопрос (риторический) был про конкретный кейс — продажа билетов в конкретном кинотеатре на конкретный сеанс. Какая разница купит человек на родном сайте кинотеатра или у агрегатора…


        1. apapacy
          13.04.2018 18:24

          Для собственника кинотеатра — никакой. Для собственника сайта который не обязательно является собственника кинотеатра — это потеря прибыли.

          Понижение рейтинга в поисковых системах — это все больше пользователей будет уходить на агрегатор.

          В большинстве случаев парсинг который покупают для себя хитрые заказчики задешево может быть не сильно сложными средствами отсеян. И если собственник сайта считает что его контент должен быть защищен он имеет на это полное право. И не только право. Для того чтобы отсеять 99% реально работающих на curl/node-request парсеров достаточно простого вычислителя ботов как в статье на Хабре на которую я привел ссылку.


  1. riky
    13.04.2018 01:50

    кинотеатрам можно тоже использовать скрапинг, только в своих целях.

    сделать бота для их сайта и делать запросы на фейковые заказы из нескольких редких комбинаций кресел (далее вычислять всех по ип откуда идут эти заказы). в дальнейшем отдавать им похожие на настоящие но фейковые(или немного подпорченные) данные.


    1. algotrader2013
      13.04.2018 09:32

      Это да. Продать несуществующие места. А потом предложить возврат денег, если покупатель подтвердит, что он владелец эмейла и карточки. Так можно перевести борьбу на свою поле.


  1. lorc
    13.04.2018 01:57
    +1

    Я собственно не понимаю зачем это все? Что теряют кинотеатры? Наоборот, чувак покупает у них билеты для своих пользователей. Они ему ещё и доплачивать должны.


    1. apapacy
      13.04.2018 02:07

      Порой тот сайт и кинотеатр это разные собственники. Сайт получает процент от продаж только той части билетов которые были проданы через сайт.


      1. AngReload
        13.04.2018 07:30
        +1

        Но разве покупка происходит не через их сайт?
        Кажется это может вредить, если сайт не получает процент с продаж, а только с рекламы.


    1. apapacy
      13.04.2018 02:07

      Порой тот сайт и кинотеатр это разные собственники. Сайт получает процент от продаж только той части билетов которые были проданы через сайт.


    1. algotrader2013
      13.04.2018 09:45

      Надо понимать, что если аггрегатор хорошо раскрутится, то может начать навязывать правила игры для кинотеатров. Сегодня аггрегатор покупает билеты через headless chrome, а завтра ставит перед фактом, что 50% билетов проходит через него, и без аффилиатского вознаграждения в 15% покупатели будут направлены на другие кинотеатры, а для конкретного всегда будет написано «все места проданы» (то есть, мгновенная потеря половины прибыли кинотеатра). А кинотеатр, который заплатит 20%, еще и плашку «а тут есть места получше» получит, которая будет выводится при выборе мест у не столько щедрых конкурентов.

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

      Все таки надо понимать, что интернет — это поле битвы за внимание. И внимание контролирует тот, чей домен пользователь вводит в адресной строке. А как монетизировать, это уже другой вопрос


      1. Free_ze
        13.04.2018 11:25
        +1

        без аффилиатского вознаграждения в 15% покупатели будут направлены на другие кинотеатры, а для конкретного всегда будет написано «все места проданы»
        За такое можно нарваться на иск. Тем более, что это претензия на монополизацию бизнеса.


        1. algotrader2013
          13.04.2018 13:25

          За такое можно нарваться на иск. Тем более, что это претензия на монополизацию бизнеса.

          Уверен, что поводы для исков и так есть. Часто в terms of use пишут, что запрещен сбор информации для коммерческого использования.
          Просто надо понимать, что люди, делающие такие проекты морально к искам готовы. Сайт может быть зарегистрирован на Доминиканских островах. И, к тому же, попробуй доказать, что выдвигающий условия == владелец сайта. А вот кинотеатр, подав иск, усыхание ручейка прибыли почувствует сразу. У аггрегатора гораздо больше рычагов давления. Можно просто повесить бляшку на главной странице, что «участились жалобы на кинотеатр N, покупайте билеты на свой страх и риск», а разбираться, кто прав среднему зрителю не надо. Ему лучше просто выбрать кинотеатр, который без вопросов.


          1. Free_ze
            13.04.2018 13:36

            Ну пойдут прокатчики в РКН, скажут, что «бляшки» порочат их деловую репутацию и финита для агрегатора, на каких бы островах он бы ни был зарегистрирован.


            1. algotrader2013
              13.04.2018 14:19

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


              1. Free_ze
                13.04.2018 14:32

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


      1. mayorovp
        13.04.2018 12:32

        Вот только надо понимать, что один кинотеатр для агрегатора ничего не изменит. С ним или без него он раскрутится (или провалится) в любом случае.

        Таким образом, сопротивление бесполезно в долгосрочной перспективе, и вредно в краткосрочной (агрегатор же покупателей приводит!).


        1. algotrader2013
          13.04.2018 13:30

          Тут так сразу не скажешь.

          агрегатор же покупателей приводит!

          и уводит тоже. Аггрегатор может чуть-чуть увеличить пирог для всех (к примеру, часть тех, кто смотрел Apple TV, начнет в кино ходить), пусть это будет +5%. И при этом может серьезно менять расклад сил, лишая кинотеатры своих фишек и маркетиговых уловок при выборе. Скажем, один кинотеатр получит +25% зрителей, потому, что он дешевый, и о нем люди просто мало знали, а второй -20% зрителей, потому, что дорогой, и люди узнали о первом, зайдя купить билет на второй.


          1. mayorovp
            13.04.2018 13:41

            Из второго люди все равно уйдут, независимо от того будет ли он представлен в агрегаторе.


  1. OZR
    13.04.2018 08:48

    А и не нужно. В мире с каждым днём всё больше и больше информации. Мы хотим получать нужную для нас информацию. Поток данных стал настолько огромным, что без скраппинга «мозг вытечет» её просто анализировать. Да и с ним ситуация хоть и легче, но не намного.

    И человеку\компании всё же следует понимать, что они всего лишь человек\компания. Одни из многих. Есть другие люди, другие компании (кинотеатры). Мы уникальны, но не настолько. Есть масса альтернатив. Бороться нужно за внимание. Его уделяют. Значит чем-то полезны. Не будут уделять. Будет меньше влияния, прибыли. И в конечном итоге это приведёт к тому, что люди уйдут. Как раз к конкурентам.

    И даже такие сайты, аля авито, которым выгодно бороться со скраппингом (ведь они уникальные и такие единственные, сейчас) будут «наказаны». Ведь людям нужно не авито, а получить нужную услугу\информацию, и желательно максимально быстро, чтобы потом заняться чем-нибудь более важным и полезным. А это значит удобный доступ и отображение информации в нужном нам виде. Именно это и делают скрапперы.

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

    А нас уже совсем скоро будет 8 миллиардов. Вся эта «борьба» со скраппингом скорее напоминает позицию — «Назло маме уши отморожу». Ну… Успехов им. Добровольный путь к собственной деградации.


    1. algotrader2013
      13.04.2018 10:08

      Сайты без полноценного апи для доступа к ним со временем полностью отомрут.

      Если в одиночку не способны противостоять тем, кто аггрегирует информацию, то да. Если готовы предоставить ценность конечному пользователю больше, то нет. К примеру, FB.
      Ведь людям нужно не авито, а получить нужную услугу\информацию, и желательно максимально быстро, чтобы потом заняться чем-нибудь более важным и полезным. А это значит удобный доступ и отображение информации в нужном нам виде. Именно это и делают скрапперы.

      Что? Люди чтобы получить информацию пишут скраперы. Эх… мне бы машину купить тысяч на 20 долларов, напишу скрапер, который спарсит все б/у машины региона с ценой от 19 до 21 тысячи, натренирую ML модель, и выберу оптимум? Нет, в реальном мире люди так не поступают. А на том 0.01%, кто так делает, много не заработаешь.
      Бороться нужно за внимание.

      Золотые слова. И кинотеатр, пользователи которого покупают билеты через аггрегатор, его уже потерял. Он стал коммодити. Теперь аггрегатор сам решит, скольким пользователям его подсунуть, а от скольки запрятать на последнюю страницу поиска.


      1. alsii
        13.04.2018 14:34

        Что? Люди чтобы получить информацию пишут скраперы.

        Мне один раз пришлось на коленке писать такой, чтобы выхватить у хостера сервер по вкусной цене :-) Их было ограниченное количество, как только один освобождался, его сразу покупали (в списке была информация: последний продан столько-то времени назад). Я его караулил неделю — пропустил штук 10-15, потом написал бота и поймал за трое суток. Что навело меня на мысль, что бота написал не один я :-)


        1. Free_ze
          13.04.2018 14:40

          Аналогично с РЖД-билетами в горячий сезон) Их пачками вбрасывают на продажу с некоторой периодичностью до даты.


  1. NoRegrets
    13.04.2018 09:32

    Все же скрапинг или скрейпинг?


  1. dmxrand
    13.04.2018 10:18

    И тут ваш бот попадает на Flash сайт (мне так заказывали скрапер для букмейкерской конторы — там Flash). Или на сайт с WebGL и вы идете курить бамбук


    1. algotrader2013
      13.04.2018 10:36

      мне так заказывали скрапер для букмекерской конторы — там Flash

      Я, кажется, даже понимаю, какой (если говорим об одной и той же, то там мобильный сайт с такой же скорость обновления, и на js). Как правило, есть мобильная версия не на Флеш, или мобильное приложение с простым протоколом, или можно протокол, который флеш использует, раскрутить.


      1. alsii
        13.04.2018 14:30

        SVG, canvas, можно на сервере картинки генерировать :-)


  1. RedElf
    13.04.2018 11:25

    С юридической точки зрения вконтактик нагнул ботов приставов и заставил платить (разрешил себя скрапить по соглашению сторон)


  1. gorcer
    13.04.2018 11:28
    +1

    Есть другой подход к защите от скрапинга, это подсовывание некорректного контента. К примеру кинотеатр может вычислить бота и начать подсовывать ему неправильные даты показа или искаженную информацию по свободным местам. В этом случае сложно определить в какой момент вас заметили. Я использовал этот подход и он отсек часть скраперов, самые мотивированные конечно остались.


  1. lolhunter
    13.04.2018 12:22

    На самом деле статья довольно кривая.
    Задача сайта ОТЛИЧИТЬ бота от не бота.
    И судя по статье, если НЕ противодействовать в открытую — вы не поймете КАК вас отличают.
    А вот блокировать — не надо.
    А дальше игра начинается в обратные ворота.
    Как я вас отличил и начал вам лить барахло в 1 из 3 запросов вместо контента?
    Например в описании фильма другие актеры. Или картинка вдруг стала с моим логотипом, причем только начиная с 5 (+RAND(1-10)) запроса?
    Как так получилось, что вы оформили билеты, а там 10 место в 5 ряду, а 5 место в 10 (в выдаче внезапно слова поменялись местами и добавилась, — вместо 10 место, ряд 5 стало 10 ряд, место 5)?
    Причем для одного бота показывается одно, а для другого — другое. И таких вариантов «выдачи» можно нагенерировать десятки. Включая и выключая их периодически и для обычных пользователей. Заодно A/B тесты сделали.
    Причем вот эти корявые email, BIN и тд дают прям 100% попадание.


    1. algotrader2013
      13.04.2018 14:22

      Если админ сайта кинотеатра хорошо знает программирование и имеет много свободного времени, то почему бы и нет)


  1. FlameArt
    13.04.2018 12:28

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


  1. iig
    13.04.2018 12:42
    +1

    вы оформили билеты, а там 10 место в 5 ряду, а 5 место в 10 (в выдаче внезапно слова поменялись местами и добавилась, — вместо 10 место, ряд 5 стало 10 ряд, место 5)?


    Странное решение странной проблемы.
    Несколько десятков отзывов довольных пользователей, в том числе и по сарафанному радио (в кино обычно за 200 км не ездят) — и у вас билеты больше никто не купит. Да и кинотеатр тот будут обходить подальше.


    1. lolhunter
      13.04.2018 14:26

      Странное решение странной проблемы.
      Несколько десятков отзывов довольных пользователей, в том числе и по сарафанному радио (в кино обычно за 200 км не ездят) — и у вас билеты больше никто не купит. Да и кинотеатр тот будут обходить подальше.

      А каким образом заказ на левом сервисе соотносится с кинотеатром?
      Вы заказали в кинотеатре билет? Нет.
      Вы заказали на сервисе, а он выдал вам корявые данные. Кто виноват? Очевидно сервис.


      1. iig
        13.04.2018 14:48

        Я покупал билет в кинотеатр. В кинотеатре мне, вместо сеанса, начинают чего-то рассказывать… Что мне делать?
        Я купил билет у мошенников, и мне продали фантик? Заявление в полицию на агрегатора. Кинотеатр — свидетель. Не хочет быть свидетелем? Не соучастник ли он?
        Руководство кинотеатра по каким-то своим странным мотивам организовало продажу фиктивных билетов? Тогда они точно соучастники.


        1. lolhunter
          13.04.2018 15:00

          У вас какая-то странная подмена понятий.
          Навроде той, что у людей, которые покупают брендовый товар где-то в китае и потом приходят к официальному дистрибьютору за гарантией.
          Вы купили у кинотеатра билеты? Нет
          Вы купили билеты у агрегатора. В случае каких-либо проблем вам надо обращаться к АГРЕГАТОРУ. Собственно теже MC и Visa вернут вам деньги по заявлению на агрегатора, а не на кинотеатр.
          Почему наши люди так не любят обращаться с проблемами туда, куда они платили деньги, а не к тому, кто им что-то должен или не должен.
          Собственно по пунктам:

          Я покупал билет в кинотеатр. В кинотеатре мне, вместо сеанса, начинают чего-то рассказывать… Что мне делать?

          Выяснять у вашего агрегатора что вы купили.
          Я купил билет у мошенников, и мне продали фантик? Заявление в полицию на агрегатора. Кинотеатр — свидетель. Не хочет быть свидетелем? Не соучастник ли он?

          У кинотеатра на сайте оформлен один билет, а агрегатор вам показывает другой. Кто виноват?
          Агрегатор действуя на СВОЙ страх и риск и ПО СВОЕЙ инициативе без какого-либо договора сканирует сайт кинотеатра и оформляет на ваше имя билет. Что-то у него там не получилось. Кто виноват? Кинотеатр? А разве он что-то обязан агрегатору?
          Руководство кинотеатра по каким-то своим странным мотивам организовало продажу фиктивных билетов? Тогда они точно соучастники.

          Вы купили билеты у руководства кинотеатра?
          Или на каком-то непонятном сервисе?


          1. iig
            13.04.2018 15:17

            Ок.

            Агрегатор действуя на СВОЙ страх и риск и ПО СВОЕЙ инициативе без какого-либо договора сканирует сайт кинотеатра и оформляет на ваше имя билет.

            Я, как покупатель, не имею возможности знать, в каких отношениях находится агрегатор и кинотеатр.
            Но, если агрегатор продает фантики — его очень быстро прикроют. А если выяснится, что в продаже фантиков замешано руководство кинотеатра… Если их хваленый скрипт продаст обычному человеку, но с неизвестным броузером, фантики…

            Вы купили билеты у руководства кинотеатра?

            Покупать билеты лично у директора кинотеатра в присутствии нотариуса? К этом ни я, ни он не готовы ;)
            Но и покупать билеты через агрегатора я, кстати, не вижу смысла. Что оригинальный сайт, что агрегатор находятся на расстоянии клика мышки.


            1. lolhunter
              13.04.2018 15:36

              Я, как покупатель, не имею возможности знать, в каких отношениях находится агрегатор и кинотеатр.

              Для этого надо покупать на официальном сайте.
              Но, если агрегатор продает фантики — его очень быстро прикроют. А если выяснится, что в продаже фантиков замешано руководство кинотеатра… Если их хваленый скрипт продаст обычному человеку, но с неизвестным броузером, фантики…

              Каким образом фантики? Проданы места, которые написаны. Если их парсер неправильно понял — это проблемы парсера.
              Вообще строить бизнес на чужом контенте и бравировать этим ну как-то нелепо.
              Покупать билеты лично у директора кинотеатра в присутствии нотариуса? К этом ни я, ни он не готовы ;)
              Но и покупать билеты через агрегатора я, кстати, не вижу смысла. Что оригинальный сайт, что агрегатор находятся на расстоянии клика мышки.

              Ну так в том-то и дело.
              Прикол тут в том, что они сделали агрегатора и парсят сайт и типа позволяют сделать заказ.
              И как вы не закрывайтесь — мы все равно отпарсим и закажем.
              Я же говорю о рисках совсем другого порядка.
              Кинотеатр никак не обязан этому агрегатору и то, что он им отдает вообще никак и ни к чему кинотеатр не обязывает. Он выдал схему вверх ногами и места справа налево вместо слева направо? Человеку норм, а вот скрипт заказал не то место. Привет.


              1. iig
                13.04.2018 15:58

                Кинотеатр никак не обязан этому агрегатору


                Кто-то получил деньги за билет-фантик.
                Кто-то мошенник.


                1. lolhunter
                  13.04.2018 16:08

                  Агрегатор и получил)


                  1. iig
                    13.04.2018 16:15

                    Не может такого быть.
                    Если билет продан — в базе кинотеатра от отмечен как проданный. Если отмечен — значит кинотеатр получил (или намерен получить) деньги.
                    Если кинотеатр деньги получил, но билет не признает — налицо мошенничество.


                    1. IDMan
                      14.04.2018 00:47

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


  1. lotse8
    13.04.2018 19:56

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


  1. bogolt
    14.04.2018 00:15

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


  1. YChebotaev
    14.04.2018 01:28

    Было бы желание ) Поведение живого пользователя на сайте наверняка отличается от поведения бота. Если посмотреть для примера selenium, то он перемещает курсор на нужное место мгновенно, а значения в форму накидывает не менее молниеносно.
    Если написать скрипт, который бы анализировал характеристики агента, то отличить бота от человека будет довольно просто.


    1. Snorqq
      14.04.2018 04:33

      Заколебетесь отделять волков от агнцев) на тачскринах курсор перемещается мгновенно по дизайну, а поставить задержку в эмуляциях нажатий — одна строчка в теле цикла отпечатки строки…