我们正在迁移Web服务器,最好有一种自动方式来检查一些基本站点结构,以查看渲染页面在新服务器上是否与旧服务器相同。我只是想知道是否有人知道有什么可以帮助完成这项任务?
答案 0 :(得分:3)
获取两个网站的格式化输出(此处我们使用 w3m ,但 lynx 也可以使用):
w3m -dump http://google.com 2>/dev/null > /tmp/1.html
w3m -dump http://google.de 2>/dev/null > /tmp/2.html
然后使用wdiff,它可以给出两个文本相似程度的百分比。
wdiff -nis /tmp/1.html /tmp/2.html
使用colordiff可以更容易地看到差异。
wdiff -nis /tmp/1.html /tmp/2.html | colordiff
输出摘录:
Web Images Vidéos Maps [-Actualités-] Livres {+Traduction+} Gmail plus »
[-iGoogle |-]
Paramètres | Connexion
Google [hp1] [hp2]
[hp3] [-Français-] {+Deutschland+}
[ ] Recherche
avancéeOutils
[Recherche Google][J'ai de la chance] linguistiques
/tmp/1.html: 43 words 39 90% common 3 6% deleted 1 2% changed
/tmp/2.html: 49 words 39 79% common 9 18% inserted 1 2% changed
(他实际上把google.com变成法语......好笑)
常见%值是两个文本的相似程度。另外,您可以通过单词轻松查看差异(而不是通过可能是杂乱的行)。
答案 1 :(得分:2)
问题是如何检查'渲染'页面。如果页面没有任何动态内容,最简单的方法是使用md5或sha1命令为文件生成哈希值,然后检查新服务器。
如果页面包含动态内容,则必须使用wget
等工具下载网站wget --mirror http://thewebsite/thepages
然后按照Warner的建议使用diff或再次执行hash事件。我认为差异可能是最好的方法,因为即使更改1个字符也会破坏哈希值。
答案 2 :(得分:1)
答案 3 :(得分:1)
使用开源工具recheck-web(https://github.com/retest/recheck-web),有两种可能性:
对于这两种解决方案,您当前都需要手动列出所有相关的URL。在大多数情况下,这应该不是大问题。 recheck-web会比较呈现的网站,并准确显示它们的不同之处(即,不同的字体,不同的元标记,甚至不同的链接URL)。并且它为您提供了强大的过滤器,让您可以专注于与自己相关的内容。
免责声明:我已经帮助创建了recheck-web。
答案 4 :(得分:0)
将文件复制到/tmp/directory1
和/tmp/directory2
中的同一服务器,然后运行以下命令:
diff -r /tmp/directory1 /tmp/directory2
出于所有意图和目的,您可以使用首选命名约定将它们放在首选位置。
修改1
您可以使用lynx -dump
或wget
并在结果上运行差异。
答案 5 :(得分:0)
除了渲染每个页面,拍摄屏幕截图以及比较这些截图之外,我认为不可能比较渲染的页面。
然而,在下载wget后,下载的网站肯定是可以比较的。
wget [option]... [URL]...
-m
--mirror
Turn on options suitable for mirroring. This option turns on recursion and time-stamping, sets infinite recursion depth and keeps FTP
directory listings. It is currently equivalent to -r -N -l inf --no-remove-listing.
接下来的步骤是做华纳推荐的递归差异。