我如何从像这样的文件服务器下载文件列表http://www.apache.org/dist/httpd/binaries/?
我想我可以使用 wget,但它会尝试获取所有链接和 html 文件。有没有更好的工具来实现这一点?
答案1
您可以指定wget
在抓取页面时下载哪些文件扩展名:
wget -r -A zip,rpm,tar.gz www.site.com/startpage.html
这将执行递归搜索并仅下载带有.zip
、.rpm
和.tar.gz
扩展名的文件。
答案2
假设您实际上只想要服务器上的文件列表而不想(暂时)获取它们:
%> wget -r -np --spiderhttp://www.apache.org/dist/httpd/binaries/2>&1 | awk -f 过滤器.awk |独特
而 'filter.awk' 看起来像这样
/^--.*-- http:\/\/.*[^\/]$/ { u=$3; } /^长度: [[:digit:]]+/ { 打印 u; }
那么你可能必须过滤掉一些条目,例如
"http://www.apache.org/dist/httpd/binaries/?C=N;O=D"
答案3
参考:http://blog.incognitech.in/download-files-from-apache-server-listing-directory/
您可以使用以下命令:
wget --execute="robots = off" --mirror --convert-links --no-parent --wait=5 <website-url>
每个选项的解释
wget
:简单命令发出 CURL 请求并将远程文件下载到我们的本地机器。--execute="robots = off"
:这将在抓取网页时忽略 robots.txt 文件。如果您没有获取所有文件,这将很有帮助。--mirror
:此选项基本上会镜像给定 URL 的目录结构。它是-N -r -l inf --no-remove-listing
以下选项的快捷方式:-N
:除非文件比本地文件新,否则不要重新检索文件-r
:指定递归下载-l inf
:最大递归深度(inf 或 0 表示无限)--no-remove-listing
:不要删除“.listing”文件
--convert-links
:使下载的 HTML 或 CSS 中的链接指向本地文件--no-parent
:不上升到父目录--wait=5
:在两次检索之间等待 5 秒钟。这样我们就不会破坏服务器。<website-url>
:这是下载文件的网站网址。
下载愉快:笑脸: