Создание парсеров

Парсинг - это заданная последовательность действий, выполняющихся на целевой web-странице. Эта последовательность задается в виде Сценария. Поэтому парсеры в Parsio состоят как минимум из одного Сценария.

Сценарии парсинга

Создание парсеров в Parsio происходит в интуитивно понятной визуальной среде при помощи простых правил Сценария, как если бы вы описывали простыми словами все те действие, которые собираетесь совершить на целевой странице:

  • Зайти по такому-то URL-адресу
  • Кликнуть на такое-то поле для ввода текста (например, строку поиска)
  • Ввести заданный текст
  • Нажать кнопку "Отправить" или "Искать"
  • Подождать появления результатов
  • Выбрать нужные результаты и отфильтровать данные
  • Сохранить полученные данные

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

Парсер AJAX и динамических сайтов

Большинство парсеров предыдущего поколения использует для извлечения данных из web-страницы так называемые "регулярные выражения". Но такие парсеры оказываются беспомощными перед сайтами, контент которых формируется динамически, например, в результате работы JavaScript или же при получении данных с сервера при помощи AJAX. Парсер на регулярных выражениях работает с исходным HTML-документом, полученным с сервера, но отображаемая в браузере современная динамическая web-страница и ее исходный HTML-документ - это две большие разницы!

Кроме того, "старинному" парсеру нужно знать, какие параметры передавать серверу в URL-строке или в POST-запросе для получения той или иной страницы. Вы же, как обычный пользователь, при посещении web-страницы совершенно не задумываетесь над тем, какие параметры передаются серверу. Вы просто кликаете по ссылке и все! Точно так же происходит создание парсера при помощи Parsio.

Parsio, разработанный на базе движка Chromium современного браузера Google Chrome, обрабатывает страницу так, как будто вы зашли на сайт обычным браузером. Parsio исполняет все скрипты, применяет все таблицы стилей, подгружает все изображения. В общем, сайт никак не сможет отличить Parsio от обычного "живого" пользователя. Поэтому Parsio точно так же, как и обычный пользователь, ходит по сайту, кликает по ссылкам, набирает текст в поля форм, иммитируя нажатие клавиш на клавиатуре, и обрабатывает результат: получает итоговую web-страницу и выбирает из нее требуемые данные на ваше усмотрение.

Выборка данных

Следствием использования современного браузерного движка в Parsio является значительное упрощение способа выборки данных с сайта. После загрузки HTML-страницы с сервера, браузер формирует так называемое DOM-дерево (Document Object Model - Объектную Модель Документа), расставляя в нем в определенном порядке и отображая "на экране" все элементы HTML-страницы.

Имея полностью собранное DOM-дерево загруженного HTML-документа, мы можем обращаться к его объектам при помощи простых и понятных селекторов CSS или jQuery! (Ну как, простых и понятных? Уж во всяком случае гораздо проще и понятнее регулярных выражений!)

Вот примеры селекторов:

  • #input-field - выбирает на странице HTML-элемент с id="input-field"
  • div.search input[type="text"] - ищет HTML-элемент INPUT, у которого type="text", расположенный внутри DIV-а с классом class="search"
  • #header a.but-login - находит внутри элемента с id="header" все ссылки A с классом class="but-login"

Подробнее читайте в разделе Выборка данных.

Создание парсеров в Parsio также значительно упрощается благодаря возможности внедрять в загруженную страницу сайта свой JavaScript. Для максимального удобства работы со страницей используется последняя версия популярнейшей библиотеки jQuery.

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

Обработка Капчи

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

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