我想要完全镜像以下网站:http://tinaztitiz.com
我使用以下 wget 命令:
wget -m http://tinaztitiz.com
该网站是一个自定义 CMS,包含许多具有以下 URL 形式的页面:
http://tinaztitiz.com/yazi.php?id=943
http://tinaztitiz.com/yazi.php?id=762
奇怪的是,wget 只能获取其中的一些页面,但不能获取全部页面。我想知道这是什么原因造成的?
注意:没有受到 robots.txt 的限制。
更新:
查看该网站的源代码,我注意到那些未被wget检测到并抓取的页面有一个共同的属性,它们的锚点url都是由以下javascript函数编写的:
function yazilar()
{
var ab = '</a><br class=\"hide\" />';
var aa = '<a class=' + '\"nav sub\" href=\"kategori.php?id=';
var ac = '';
var arr = new Array();
arr[0] = '12\">'+ac+' Belâgat';
arr[1] = '15\">'+ac+' Bilim ve Teknoloji';
//...
maxi = 14;
for(i=0;i<maxi;i++) {
a = aa + arr[i] + ab;
document.writeln(a);
}
}
因此,看起来 wget 无法检测动态生成的锚标签。
答案1
Javascript 由浏览器呈现。wget
它完全按照预期执行操作,获取内容。浏览器最初也会执行相同的操作。它们获取的内容与您上面发布的内容完全相同。但随后它会呈现部分内容Javascript
并构建链接。wget
无法做到这一点。因此,您无法仅使用 wget 获取动态生成的链接。您可以尝试类似幻影JS尽管。