假设我们有一个www.example.com
包含以下页面的网站:
www.example.com/page1
www.example.com/unknown
www.example.com/unknown
是否有 Wget 命令会产生以下输出:
page1
page2
page3
如果网站结构是:
www.example.com/xxxx/page1
www.example.com/xxxx/page2
www.example.com/xxxx/page3
本质上我有一个服务器 IP 地址,并且希望能够列出服务器上保存的所有页面,看看是否有我感兴趣的内容可供下载。
例如,我可以这样做wget -r www.example.com/page1
,并且我想知道是否还有我可能感兴趣的其他目录( page2
、等)。page3
我研究过这个--spider
选项和其他选项,但没有任何乐趣。
答案1
您无法从客户端执行此操作,但您可以查找站点地图,有时http://www.example.com/robots.txt文件可能包含一个列表。可能有一种方法可以向谷歌索要一份列表,并且在回程机器上可能有最后一个。
答案2
您可以告诉 wget 递归下载整个网站,但它是通过每个页面上的链接来完成的。如果它不知道 page1、page2 和 page3 在那里,它将永远不会检索它们。
坦率地说,幸运的是,HTTP 并不是这样工作的。
答案3
这不可能。没有 HTTP 请求方法,HTTP 检索请求始终获取特定的 URL 作为参数。
答案4
正如 Rens 和 franziskus 所说,从 page1 无法做到这一点,唯一的机会取决于您要复制的网站的设置方式。
它不太可能出现在根目录中,但子目录(假设您知道它们存在)可能会以这样的方式配置,即它们为您提供文件列表(某种可视化 ftp)。但您将要利用大多数网站管理员试图向您隐藏的东西:他们网站的内部结构。
我成功地利用了这一点来获取我确信存在但无法通过网站导航找到的信息。它仅适用于极少数网站。