我想抓取www.website.com/XYZ下的链接,而仅下载www.website.com/ABC下的链接。
我正在使用以下wget命令来获取所需的文件:
wget -I ABC -r -e robots=off --wait 0.25 http://www.website.com/XYZ
当我使用wget 1.13.4时,这完美地工作。但是问题是我必须在具有wget 1.11的服务器上使用此命令,并且当我使用同一命令时,它最终会下载其他域,例如:
www.website.de
www.website.it
...
如何避免这个问题?我尝试使用
--exclude domains=www.website.de,www.website.it
但是它一直在下载这些域。
还要注意,我无法使用,--no-parent
因为我想要的文件位于较高级别(我希望通过抓取website.com/XYZ下的链接来获取website.com/ABC下的文件)。
有什么提示吗?
不要使用“假” URL,也不要使用与您的问题无关的网站的URL。您列出的域绝不是“子域”,它们只是不同的域,可能属于同一公司。
—
贡伯特
这里不对劲。
—
jw013
wget
默认情况下不应跨主机,并且在执行递归wget时需要-H
/ --span-hosts
选项跨主机。“ www.website.com”是与“ www.website.de”完全不同的主机。
@guntbert抱歉,我认为提供真实的URL将是一个问题。当然,我要爬网的网站不是website.com。但是,当我搜寻example.com时,也会在主目录中看到example.it,example.de(与example.com处于同一级别)。
—
user2779485
@ jw013就像我上面说的,当我只提供www.example.com/x时,它也会同时爬行www.example.de,www.example.it。但是这只会发生在wget 1.11而不是1.13 ..这就是为什么我很困惑的原因。
—
user2779485
这看起来像个错误:wget 1.11的行为不应有所不同,
—
吉尔(Gilles)'所以
-H
一直需要在原始主机之外递归。有-D www.website.com
帮助吗?