Существует множество инструментов для создания визуальных парсеров, и один из них, который действительно хорошо работает, — dexi.io. Есть и другие приятные инструменты, такие как parsehub и import.io. Эти инструменты обычно работают, эмулируя реальный веб-браузер, поэтому их иногда трудно заблокировать, поскольку не так много информации, чтобы отличить их от обычного пользователя.

Просто чтобы немного развлечься, я начал думать, как можно обнаружить эти инструменты или, по крайней мере, затруднить их работу. Основное преимущество, которое мы получили по сравнению с пользовательскими поисковыми роботами, заключается в том, что эти инструменты, как правило, универсальны, а также позволяют сайту выполнять javascript. Некоторые из этих инструментов внедряют свой собственный javascript или стили, когда они используются для создания скребка (хотя они могут не делать этого при реальном запуске).

Некоторые первоначальные мысли о том, как их обнаружить:

  1. Если они внедряют javascript или стили на ваш веб-сайт при его загрузке, вы можете выполнить какой-то javascript и попытаться найти внедренный код.
  2. Хотя они и подражают событиям, но делают это наивно. Например, если необходимо щелкнуть ссылку, движения мыши до достижения ссылки не записываются. Запускается только событие клика. Веб-сайт может отслеживать все движения мыши и легко обнаруживать, когда происходит что-то странное.
  3. Некоторые из этих инструментов работают в Интернете и действуют как прокси, поэтому все данные проходят через них. Первоначально вы могли использовать эти инструменты, чтобы перейти к whatismyip, получить IP-адрес и заблокировать его на своем веб-сайте. Конечно, этот ограничен, так как они могут использовать много ips.

Я поигрался с dexi.io и нашел простой способ определить, когда кто-то использует его для создания парсера на вашем сайте. Dexi вводит некоторые стили, которые вы можете обнаружить с помощью javascript. Как только вы узнаете, что можете возиться с домом, чтобы ваши данные были скрыты или вы получили уведомление. Конечно, Dexi может исправить это, но, скорее всего, вы все равно сможете обнаружить их разными способами.

Вот пример статической страницы в качестве доказательства концепции, код js ищет определенный класс, введенный dexi, который называется «cs-style».