Инструменты для анализа автоматически генерируемых HTTP-индексов?

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

Существуют общие операции, такие как идентификация самого последнего файла в каталоге в соответствии с указанной меткой времени или загрузка файла с последней версией. Они включают в себя общие шаги по загрузке индекса html, извлечению имен файлов, сопоставлению шаблонов, синтаксическому анализу, сортировке по дате и т. Д. … Обычно я использую минимальное решение в bash с использованием wget, grep, awk, sort и date, Любопытно, если кто-то работал над обобщенными решениями проблем, связанных с индексами файлов html.

Существуют ли какие-либо (предпочтительно, командной строки) утилиты для обработки / разбора этих html-файлов?

Очевидно, что это нетривиальная задача, и во всех случаях она не может быть выполнена идеально, но решение, которое позволяет избежать повторного использования колеса для 90% всех случаев, безусловно, входит в сферу возможностей.

  • Как исправить кодировку имени файла
  • Почему я продолжаю получать файл wget-log в ~ на Arch Linux?
  • Как запустить HTTP-запрос без использования CURL
  • Как вы переименовываете файлы в списке, который будет использовать wget?
  • Загрузка нескольких похожих URL-адресов с использованием скобок
  • Как загружать файлы с помощью wget, где страница заставляет вас ждать загрузки?
  • Использование wget для загрузки изображений в разговорах в facebook
  • Игнорировать «другие» домены при загрузке с помощью wget?
  • One Solution collect form web for “Инструменты для анализа автоматически генерируемых HTTP-индексов?”

    Я предполагаю, что вы имеете в виду, что вы хотите анализировать HTML, содержащиеся в ответе HTTP.
    Если вы знакомы с PHP, вы можете использовать curl для извлечения страницы, а затем проанализировать строку в своей структуре DOM с помощью класса DOMDocument PHP, тогда вы можете получить интересующий innerHTML запрос на экземпляр DOMDocument.
    Как скрипт PHP командной строки

    #!/usr/bin/php // curl or readfile or whatever for url and assign HTML body into variable $html $html = '<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title></title> link </head> <body> <h1>stuff in directory listing</h1> </body> </html> '; $DOM = @DOMDocument::loadHTML($html); $element = $DOM->getElementsByTagName("h1")->item(0); echo $element->nodeValue; 

    Вот как я это сделаю, и причина в том, что

    1. это даст гибкую реализацию, где вы сможете адаптироваться к различным ответам, которые предоставили веб-серверы.
    2. попытка синтаксического анализа содержимого по регулярному выражению была бы очень тяжелой (Im guessing)

    Вот демоhttp://codepad.viper-7.com/apsiKR

    Linux и Unix - лучшая ОС в мире.