Wget具有-H"span host"选项
Span to any host—‘-H’
The ‘-H’ option turns on host spanning, thus allowing Wget's recursive run to visit any host referenced by a link. Unless sufficient recursion-limiting criteria are applied depth, these foreign hosts will typically link to yet more hosts, and so on until Wget ends up sucking up much more data than you have intended.
Run Code Online (Sandbox Code Playgroud)
我想做一个递归下载(例如,第3级),我想获得图像,样式表,javascripts等(即,正确显示页面所需的文件),即使它们在我的主机之外.不过,我并不想跟着一个链接到另一个HTML页面(因为那可以去到另一个HTML页面,依此类推,那么数字可能会爆炸.)
有可能以某种方式这样做吗?似乎-H选项控制跨越到其他主机的图像/样式表/ javascript案例和链接案例,而wget不允许我将两者分开.
lig*_*h05 17
下载页面中的所有依赖项
第一步是下载特定页面的所有资源.如果你查看wget的手册页,你会发现:
...下载单个页面及其所有必需品(即使它们存在于不同的网站上),并确保批次在本地正确显示,此作者除了-p之外还喜欢使用一些选项:
wget -E -H -k -K -p http://<site>/<document>
Run Code Online (Sandbox Code Playgroud)
获得多个页面
不幸的是,这只适用于每页.你可以打开递归-r,但后来你遇到了跟随外部网站和爆炸的问题.如果您知道可用于资源的域的完整列表,则可以将其限制为仅使用的域-D,但这可能很难.我建议使用-np(没有父目录)的组合并-l限制递归的深度.您可能会开始获得其他网站,但至少会受到限制.如果您开始遇到问题,可以使用--exclude-domains限制已知问题的原因.最后,我认为这是最好的:
wget -E -H -k -K -p -np -l 1 http://<site>/level
Run Code Online (Sandbox Code Playgroud)
限制域名
为了帮助确定需要包含/排除哪些域,您可以使用此答案来grep一两页(您希望grep该.orig文件)并列出其中的链接.从那里你可以建立一个应该包含的域名列表,并使用-D参数限制它.或者您至少可以找到一些您不想包含的域名并限制它们使用--exclude-domains.最后,您可以使用该-Q参数来限制下载的数据量,以防止填满磁盘.
论证的描述
-E
\.[Hh][Tt][Mm][Ll]?,此选项将使后缀.html附加到本地文件名.-H
-k
-K
-p
-np
-l
-D
--exclude-domains
-Q