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

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

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

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

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

  • Переименовать wget загруженный родительский каталог
  • почему скручивание и wget приводят к запрету на 403?
  • Как загрузить файл на удаленную машину через SSH?
  • Как передать аргумент, хранящийся в переменной, в WGET
  • Как узнать, успешно ли завершена загрузка wget?
  • Печать как Firefox
  • Загрузка вложенных файлов PDF с помощью wget
  • Использование даты -1day с помощью 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

    Interesting Posts

    Понимание порядка загрузки linux в файле /etc/init.d

    Как я могу использовать подстановочный знак для соответствия только файлам, а не каталогам?

    Разрешения и пользователь для загрузки yum

    Измерение задержки в конвейере GStreamer

    В RHEL / CentOS 7, действительно ли mv делает cp & rm в одной и той же файловой системе?

    Обработанный файл Sed отображается по-разному в vi vs cat

    как hdparm вычисляет время спада?

    Могут ли команды tr быть закодированы, чтобы избежать нескольких tr процессов в конвейере?

    как сделать окно tmux открытым после выполнения команды

    Ограничение доступа только к командам CVS и Git

    Расположить диск в корпусе SAS

    Atomic repo просто обновляет Ossec, а не остальное, что возможно для Centos 6.4?

    Как удалить набор из portage

    Howto Tell, если система аутентифицируется только с паролем или через PAM

    Linux Mint – не обнаружение монитора, подключенного через концентратор USB-C к HDMI

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