Извлечение фрагментов html страницы с помощью выражений xpath


Данная обработка (управляемая форма) позволяет извлекать фрагменты html страницы. Для работы понадобится url целевой страницы и выражение поиска. Если у вас используется проски сервер для выхода в интернет, то есть возможность указать его реквизиты. Вывод результатов поиска происходит в текстовый документ на закладке "результат".

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

  1. Обработка загружает страницу в сыром (строковом) виде http запросом GET.
  2. Обработка создает на основе строки страницы объект html.
  3. Обработка копирует теги тела html документа и их атрибуты в документ DOM.
  4. С помощью выражения поиска ищутся фрагменты и помещаются в массив.
  5. Элементы массива выводятся в результат (текстовый документ). Если массив найденных элементов пустой, тогда выводится документ dom в виде xml. В дальнейшем xml можно обработать (протестировать) сторонними инструментами.

Тестирование с прокси сервером не проводил, потому как нет такого окружения. Если у вас не отрабатывает xpath запрос, то возможно, что запрос не верен, а также страница подгружается фрагментами к основной, то есть этих фрагментов просто нет. В конце концов это не браузер, а объект hhtp соединение. К обработке я написал небольшую справку, где есть примеры выражений xpath. Обработка самодостаточна и запустится даже в пустой конфигурации. Собствено суть этой разработки в ориганальности идеи переноса тегов документа html в документ dom, в котором и возможна работа с выражениями поиска xpath. Кроме того, ряд процедур и функций я использую как универсальные.

4 Comments

  1. AlX0id

    Блин, я уж подумал, 1сники наконец сделали xpath в html.. Крутая обработка, наверное, но все-таки получается так, что надо пересобрать дерево документа после его загрузки, а это дополнительные временные и вычислительные затраты..

    Reply
  2. makc2k

    Ничего не поделаешь, пока объектная модель документа html весьма скудна. Да собственно это второстепенный объект.

    Reply
  3. serega_new

    выложите плз в открытый доступ, хочется потестить)

    Reply
  4. makc2k

    Функция поиска с помощью xpath : Xpath

    Процедура копирования (рекурсивного) из одного dom или html объекта в другой: Копирование

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *