如何从文件服务器下载文件列表?

如何从文件服务器下载文件列表?

我如何从像这样的文件服务器下载文件列表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>:这是下载文件的网站网址。

下载愉快:笑脸:

相关内容