GrabDuck

Режим браузера | Документация ScraperLab

:

В режим браузера можно переключиться нажав вкладку "Браузер" справа в Редакторе.

Чтобы загрузить страницу необходимо ввести адрес в поле и нажать клавишу "Enter". Для загруженной страницы можно задавать правила парсинга кнопками " Текст", " Картинка", " Ссылка", " HTML", "RegExp". C помощью этих кнопок можно выделить соответствующие элементы страницы. По умолчанию клик на ссылке у загруженной страницы не приводит к загрузке ссылки. Чтобы перейти по ссылке необходимо нажать кнопку "Загрузить ссылку" и нажать на ссылку.

Внимание! Некоторые сайты не разрешают загружать себя во фрейм. Такие сайты нельзя загрузить во встроенный браузер, они могут обрабатываться толко при помощи скрипта. Примером служит yandex.ru и его подсайты.

Рассмотрим подробнее кнопки:

  • Кнопка "  Текст" создает правило типа Текст и служит для парсинга текстовых элементов страницы или, например, анкора ссылки. Аналогично функции gettext в скрипте.
  • Кнопка "  Картинка" создает правило типа Картинка и служит для получения ссылки на картинку или самой картинки. Аналогично функции getimglink в скрипте.
  • Кнопка "  Ссылка" создает правило типа Ссылка и служит для получения url ссылки. Аналогично функции getlink в скрипте.
  • Кнопка " HTML" создает правило типа HTML и служит для получения html-кода какого-либо элемента документа. Также может исползоваться для получения элементов документа относительно этого html-кода, т.к. можно загрузить этот html-код через действие "Загрузить" и создавать правила как на отдельной странице. Аналогично функции gethtml в скрипте.
  • Кнопка "RegExp" создает правило типа Регулярное выражение и служит для получения текста по регулярному выражению. Аналогично функции getregexp в скрипте.

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

Для правила RegExp появляется специальное окно с html-кодом страницы, полями для ввода имени правила и самого регулярного выражения, а также номер группы, которую следует возвращать.

Над таблицей в нижней части страницы есть несколько кнопок.

  • Для объединения правил необходимо выделить галочкой два правила и нажать кнопку "Объединить". Процедура объединения сравнивает xpath двух правил и формирует общий путь. Это необходимо, чтобы, например, создать правило для всех элементов списка. Сначала создается правило для первого элемента списка, потом для второго и затем объединяются эти два правила, в результате чего будут выделены все элементы списка.
  • Кнопкой "Удалить" можно удалить правила, отмеченные галочкой.
  • Выпадающее окно "Фильтр группы" служит для фильтрации правил по определенной группе.
  • Кнопкой "Правило экспорта" показывается окно для управления правилами экспорта для страницы.
  • Кнопкой "Собранные данные" можно вызвать окно, показывающее собранные данные со страницы, разделенные по группам.

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

  • Действие "Редактировать xpath" позволяет изменить xpath данного правила, при этом возможно будут выделены другие элементы в браузере, однако тип правила не измениться.
  • Действие "Параметры" вызывает окно с параметрами для данного правила. У каждого типа правила свой набор параметров. Они будут рассмотрены далее.
  • Действие "Загрузить" доступно у правила типа Ссылка, Форма или HTML. При выборе этого действия будет загружена другая страница, на которую указывает адрес ссылки или формы, или код hmtl. В новом окне также можно задавать правила. Перейти назад можно нажав кнопку "Назад" вверху рядом с полем для ввода адреса страницы.
  • Действие "Группировка" вызывает окно, в котором можно изменить группу для правила. По-умолчанию все правила добавляются в группу group1.
  • Действие "Фильтр" вызывает окно в котором можно задать фильтрацию данных для правила. Описание типов фильтрации смотрите в функции filter_value. Результат фильтрации можно посмотреть через окно "Собранные данные", у правил с фильтром рядом с названием будет стоять звездочка.

Параметры правила

Для каждого типа правила существуют свои параметры. Рассмотрим весь список параметров подробнее:

  • Только text node. Указывает, что правило будет возвращать текстовые узлы, которые непосредственно принадлежат запрашиваемому узлу. В противном случае возвращается текст, состоящий из всех текстовых узлов всех вложенных элементов.
  • Следуюший элемент. Указывает, что правило будет выделять элемент, следующий за тем, на который указывает xpath. Тип указывает на тип нового правила. Например, сначала можно выделить текст, а потом указать следующий элемент и тип Ссылка.
  • Выделить слово. Указывает, что из текста следует взять определенные слова. С k-ого по n-ый. Отсчет начинается с 1.
  • Соединить строки в одну. Объединяет все извлеченные элементы правила в одну строку, используя разделитель, заданный в поле ввода.
  • Заменить символы. В первом поле указывается регулярное выражение, задающее символы для поиска, во втором поле - строка для замены.
  • Сохранять файл по ссылке. Указывает, что файл, на который указывает ссылка будет сохранен. Аналогично storefile.
  • Добавить в очередь загрузки. Указывает, что ссылка будет добавлена в очередь загрузки. Аналогично continue.
  • Сохранять файл изображения. Указывает, что картинка, на которую указывает ссылка будет сохранена. Аналогично storefile.
  • Возвращать только содержимое (innerHTML). У правила типа HTML указывает, что необходимо возвращать только html-код без верхнего тега, только его содержимое.

Правило экспорта для страницы

Над таблицей правил, которая находится внизу страницы, есть кнопка "Правило экспорта". При нажатии на эту кнопку появляется окно для настройки правил экспорта для страницы. В окне можно увидеть таблицу с правилами экспорта. Каждое правило соответствует команде store в скрипте. Можно добавить новое правило, редактировать, удалять и перемещать вверх и вниз уже имеющиеся правила.

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

При нажатии на кнопку "Добавить" или "Редактировать" появляется новое окно с параметрами правила экспорта. В выпадающем окне "Выберите профиль" выбирается имя профиля экспорта. В зависимости от выбранного профиля в таблице параметров появится список параметров профиля экспорта. Для профилей csv-типа необходимо самому добавлять параметры и перемещать их для установки необходимой последовательности, для остальных профилей список параметров уже будет сформирован, необходимо лишь установить значение параметра, выбрав правило парсинга или переменную из списка. Также можно задать константу (строки должны заключаться в кавычки). Также необходимо задать имя файла для сохранения без расширения (для профилей типа RDB не требуется, т.к. происходит запись в базу данных, а не в файл). А также можно задать переменную в которую будет сохранен результат. Если данные должны добавлятся в массив, то необходимо указывать оператор добавления в конец массива, а также директиву @global, чтобы сделать переменную глобальной. Например, @global prod[].

Также для профиля типа RDB, если кликнуть на имени параметра, появляется звездочка, которая означает, что этот параметр будет обновляться, если запись будет найдена в базе данных. Чтобы убрать звездочку достаточно еще раз кликнуть на имени параметра.

Формы

Если на загруженной странице заполнить форму и нажать "Enter", то автоматически создастся правило типа Форма с xpath адресом формы и будет загружена страница, вызываемая данной формой. Можно перейти "Назад" и снова загрузить форму с тем же параметром, нажав "Загрузить" в меню действий.