为了自动化的东西,我需要递归下载一个网页。我正在使用 wget,因为它可能是对程序员最友好的工具,使用 -r 标志来触发链接跟踪。
wget,但是,不处理漂亮的网址,即http://webpage/index.php/my/pretty/link,将它们视为子目录。
这个问题有解决方案吗?(我宁愿不修改该网页的源代码)
干杯,MH
编辑:问题解决
感谢您有见地的回复!
我已经设法解决了这个问题——不过,通过对提到的网页进行小幅修改。
我所做的很简单:我使用了服务器的 url 重写功能并将 url 从http://webpage/my/pretty/link重定向到http://webpage/index.php/my/pretty/link。然后,使用以下 wget 标志:
wget --mirror --page-requisites --html-extension --convert-links http://webpage/
Run Code Online (Sandbox Code Playgroud)
瞧!这一切都完美无缺(在此过程中仍然创建了目录,但从这一点开始使用某种脚本处理它是微不足道的)。
那么,wget 应该如何知道index.php/my/pretty 实际上不是一个目录呢?从 HTTP 客户端的角度来看,这一点并不明显。
也许你可以wget --exclude-directories
解决这个问题?或者也许 check wget -nd
,这将创建一组平面文件(而不是目录树)。检查这些。