wget具有-np
禁止从任何父目录获取文件的选项。我需要一些类似但更灵活的东西。考虑:
www.foo.com/bar1/bar2/bar3/index.html
Run Code Online (Sandbox Code Playgroud)
我想得到一切,但不是“更高”(在树层次结构中)比bar2
(!)。所以bar2
也应该被 fetch 但不是bar1
.
有没有办法让 wget 更有选择性?
背景:我正在尝试镜像一个具有类似逻辑结构的网站——起点,然后向上,然后向下。如果还有比wget
更适合这种布局的工具,也请告诉我。
或者不是指定可能的深度,可能是“没有父母,除非他们匹配这个或那个 URL”。
服务器上有一些结构,对吧?你可以把它想象成一棵树。所以通常使用“--no-parent”,你从某个点 A 开始,然后只向下走。
我的愿望,是能够上升——通过说允许上升 X 个节点,或者(100% 等效)允许上升到 B 节点(距离 BA=X)。
在所有情况下,下降的规则保持由用户定义(例如 - 仅下降 Y 级)。
如何储存?实际上这不是问题——wget
默认情况下重新创建服务器结构,这里没有什么可害怕的,或者不需要修复任何东西。所以,用两个词——像往常一样。
下面的目录结构——让我们假设在每个目录中只有一个文件,在 R 中——R.html 等等。这当然是简化的,因为您可以拥有不止一页。
R
/ \
B G
/ \
C F
/ \
A D
/
E
Run Code Online (Sandbox Code Playgroud)
A (A.html) 是我的起点,X = 2(所以 B 是我想要获取的最顶级节点)。在此特定示例中,这意味着获取除 R.html 和 G.html 之外的所有页面。A.html 被称为“起点”,因为我必须从它开始,而不是从 B 开始。
从更新 3 开始使用命名。
wget 选项 www.foo.com/B/C/A/A.html
问题是有哪些选项可以从目录 B 及以下获取所有页面(知道您必须从 A.html 开始)。
APr*_*mer 12
我还没有尝试过,但使用 -I 和 -X 可以给你你想要的。我的第一次尝试将沿着
wget -m -I bar1/bar2 -X "*" http://www.foo.com/bar1/bar2/bar3/index.html
Run Code Online (Sandbox Code Playgroud)
选项说明:
-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.
-I: list
--include-directories=list
Specify a comma-separated list of directories you wish to follow when downloading. Elements of
list may contain wildcards.
-X: list
--exclude-directories=list
Specify a comma-separated list of directories you wish to exclude from download. Elements of list
may contain wildcards.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
22389 次 |
最近记录: |