Как я могу сделать снимок структуры DOM wep-страницы? - PullRequest
4 голосов
/ 06 октября 2010

Мне нужно сравнить структуру DOM веб-страницы в различных точках. Как можно получить и сделать снимок.

Мне нужна DOM на стороне сервера для обработки.

Мне нужно отслеживать структурные изменения веб-страницы. Например, удаление тега div или вставка тега p. Изменение данных (innerHTML) в этих тегах не следует рассматривать как разницу.

Ответы [ 3 ]

4 голосов
/ 06 октября 2010
$html_page = file_get_contents("http://awesomesite.com");
$html_dom = new DOMDocument();
$html_dom->loadHTML($html_page);

Это использует PHP DOM. Очень простой и немного забавный в использовании. Ссылка

РЕДАКТИРОВАТЬ: после уточнения лучший ответ лежит здесь .

2 голосов
/ 06 октября 2010

Выполните следующие действия на стороне сервера:

  • Получить снимок веб-страницы через HTTP GET
  • Сохраните последовательные снимки страницы с разными именами для последующего сравнения
  • Сравните файлы с помощью HTML-инструмента с поддержкой HTML (см. Страница со списком инструментов HtmlDiff на ESW wiki ).

В качестве примера для проверки концепции в Linuxshell, вы можете выполнить это сравнение следующим образом:

wget --output-document=snapshot1.html http://example.com/
wget --output-document=snapshot2.html http://example.com/
diff snapshot1.html snapshot2.html

Конечно, вы можете заключить эти команды в программу на стороне сервера или в скрипт.

Для PHP я бы предложил вамвзглянуть на daisydiff-php .Он легко предоставляет класс PHP, который позволяет вам легко создавать HTML-инструмент с поддержкой различий.Пример:

<?
require_once('HTMLDiff.php');
$file1 = file_get_contents('snapshot1.html');
$file2 = file_get_contents('snapshot1.html');
HTMLDiffer->htmlDiffer( $file1, $file2 );
?>

Обратите внимание, что с file_get_contents вы также можете получать данные с заданного URL-адреса.

Обратите внимание, что сам DaisyDiff является очень хорошим инструментом для визуализациитакже структурные изменения .

1 голос
/ 06 октября 2010

Если вы используете firefox, firebug позволяет вам просматривать структуру DOM любой веб-страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...