Парсинг сайтов

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

Для загрузки сайтов используется блок Браузер. Он принимает на вход URL и при запуске создаёт окно браузера Chromium. По-умолчанию окно не выводится на экран, но в настройках блока можно включить его показ. 

После создания браузера, блок Браузер помещает на выходе "Контекст" указатель на созданное окно. Этот указатель может быть передан на вход блоков Элементы и Действия.

Блок Элементы используется для извлечения узлов DOM (ссылок, абзацев, изображений и т.п.) из нужного окна браузера. Получая на входе указатель на окно, блок ищет в нём один или несколько элементов, используя заданные в настройках CSS-селекторы (подробнее см. Элементы). Например, на скриншоте выше блок ищет на странице все ссылки на категории сайта. Найденные элементы помещаются на выходы и могут быть переданы дальше, например блоку Экспорт для сохранения. Из каждого элемента можно извлекать не только текст, но и аттрибуты.

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

Блоки Браузер, Действия и Элементы часто используются все вместе:

На скриншоте выше пример схемы, который делает следующее:

  1. Создаёт окно браузера и загружает в нём нужный сайт (каталог фирм);
  2. Окно передаётся блоку Действия, который вводит поисковый запрос на сайте и ждёт появления нужного списка фирм;
  3. Это же окно передаётся блоку Элементы (теперь в этом окне уже есть ссылки на фирмы). Происходит поиск ссылок на фирмы (1й элемент) и ссылки на следующую страницу (2й элемент);
  4. Найденные ссылки (20 штук) поступают на выход "Фирма" блока Элементы. Каждая из ссылок по очереди отправляется далее, где сохраняется;
  5. Если найдена ссылка "Следующая страница", она поступает на второй вход. Теперь её можно подключить к блоку Браузер в качестве URL. Браузер автоматически поймет что нужно перейти по ссылке. Таким образом схему можно зациклить, заставив бота собрать ссылки со всех страниц.

Вы можете найти различные примеры парсинга в разделе Видео.