wget用于镜像站点,但我想知道该实用程序如何下载域的所有URL。
wget -r www.xyz.com
wget如何下载域xyz的所有网址?它是否访问索引页并解析它并像抓取器一样提取链接?
答案 0 :(得分:1)
简短回答:通常,是的,Wget会抓取所有网址,但有一些例外:
robots.txt
至于起点,Wget只是从您提供的任何URL开始,在本例中为if (fprintf(ostream, ...) < 0) Handle_Error();
。由于大多数Web服务器软件在没有指定页面时都会返回索引页面,因此Wget会收到索引页面。
www.xyz.com
人:
Wget可以关注HTML,XHTML和CSS页面中的链接......这有时被称为“递归下载”。
但补充道:
在这样做时,Wget尊重Robot Exclusion Standard(/robots.txt)。
因此,如果GNU Wget 1.17.1
指定不对/robots.txt
进行索引,则默认情况下会将其排除,与尊重/some/secret/page.htm
的任何其他抓取工具相同。
此外,还存在默认的深度限制:
-r
- 递归
启用递归检索。默认最大深度为5。
因此,如果由于某种原因发生了超过5的链接,为了满足您最初捕获robots.txt
的愿望,您可能需要使用all URLs
选项,例如-l
来深入六:
-l depth
- 级别=深度
指定递归最大深度级别深度。
另请注意,早期版本的Wget在CSS中找到的资产出现了问题,而这些资产又由-l 6
链接,如wget downloads CSS @import, but ignores files referenced within them中所述。但是他们没有说出他们使用的版本,我还没有测试最新版本。我当时的解决方法是手动找出丢失的资产,并专门为那些丢失的资产编写一个单独的Wget命令。
答案 1 :(得分:0)
是。我发现wget的作用是 - 它解析给定的URL,然后通过所有嵌入的链接递归下载。