我需要在不同的点上比较网页的DOM结构。有哪些方法可以检索和快照它。
我需要服务器端的DOM进行处理。
我基本上需要跟踪网页的结构变化。例如删除div标签或插入p标签。不应将这些标签上的数据(innerHTML)更改视为差异。
答案 0 :(得分:4)
$html_page = file_get_contents("http://awesomesite.com");
$html_dom = new DOMDocument();
$html_dom->loadHTML($html_page);
使用PHP DOM。非常简单,实际上使用起来有点乐趣。 Reference
编辑:澄清后,更好的答案是here。
答案 1 :(得分:2)
在服务器端执行以下步骤:
作为Linux shell的概念验证示例,您可以按如下方式执行此比较:
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的diff工具。例如:
<?
require_once('HTMLDiff.php');
$file1 = file_get_contents('snapshot1.html');
$file2 = file_get_contents('snapshot1.html');
HTMLDiffer->htmlDiffer( $file1, $file2 );
?>
请注意,使用file_get_contents
,您也可以从给定的网址中检索数据。
请注意,DaisyDiff本身为very fine tool for visualisation of structural changes as well。
答案 2 :(得分:1)
如果你使用firefox,firebug可以让你查看任何网页的DOM结构。