说我有一个像这样的网站:
https://mywebsite.com/dir1/id-1
https://mywebsite.com/dir1/id-2
https://mywebsite.com/dir1/id-3
https://mywebsite.com/dir2/foo-id-1
https://mywebsite.com/dir2/foo-id-2
https://mywebsite.com/dir2/foo-id-3
https://mywebsite.com/dir3/list-1
https://mywebsite.com/dir3/list-2
https://mywebsite.com/dir3/list-...
https://mywebsite.com/dir3/list-n
https://mywebsite.com/dir4/another-list-type-1
https://mywebsite.com/dir4/another-list-type-2
https://mywebsite.com/dir4/another-list-type-...
https://mywebsite.com/dir4/another-list-type-n
https://mywebsite.com/random-other-directories-i-dont-care-about...
我想下载所有的/dir1/:id
和/dir2/foo-:id
页面,但是想通过/dir1
跟随/dir4
中所有页面的链接,其中一些例如,这些目录仅是指向/dir/:id
的链接的列表。
想知道我该怎么做。理想情况下,它将最大化首先下载所有:id
链接,而不会因为首先下载成千上万的列表页面而陷入困境。
想知道怎么做。它不仅仅是一个简单的“镜像站点”。很多时候,当我尝试过这种方法时,wget会过度沉迷于我不在乎的链接中。我希望它最大程度地下载/dir1/:id
和/dir2/foo-:id
,同时还收集它在其他页面上找到的所有链接。基本上,有一种确定优先级的方法。
答案 0 :(得分:1)
因此,您既不需要广度优先也不是深度优先的方法,而是想要一种使用优先级概念的方法。
不幸的是,仅使用Wget不可能做到这一点。但是,使用一些bash脚本,您也许可以非常接近。我可以想到两种简单的方法:
给定首先获取到/dir1/
和/dir2/
的链接,然后递归下载该链接。完成后,请用mywebsite.com/
调用wget以便下载其余文件。发送HEAD
对您已经下载的所有文件的请求将浪费几秒钟,仅此而已。
这类似于上面的(1)。除此以外,您对每个目录都使用“ --accept-regex”调用wget,导致它们一个接一个地下载