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


10

我如何从这样的文件服务器http://www.apache.org/dist/httpd/binaries/下载文件列表?

我想我可以使用wget,但随后它会尝试获取所有链接和html文件。是否有更好的工具来实现这一目标?


只是为了澄清您的问题:您只想要可以从服务器下载的文件列表,而不是文件本身(还可以)?
akira

wget --no-verbose --spider --no-directories --recursive --level = 2 apache.org/dist/httpd/binaries这样的命令对您不起作用?如果您能说得更具体一点可能会有所帮助
DaveParillo

Answers:


12

您可以指定wget在搜寻页面时将下载哪些文件扩展名:

wget -r -A zip,rpm,tar.gz www.site.com/startpage.html

这将执行递归搜索,只下载文件与.zip.rpm.tar.gz扩展。


8

假设您实际上只想要服务器上的文件列表而不获取它们(尚未):

%> wget -r -np --spider http://www.apache.org/dist/httpd/binaries/ 2>&1 | awk -f filter.awk | 优衣库

而“ filter.awk”看起来像这样

/^--.*-- http:\ / \ /.* [^ \ /] $ / {u = $ 3; }
/ ^长度:[[:digit:]] + / {打印u; }

那么您可能必须过滤掉一些条目,例如

"http://www.apache.org/dist/httpd/binaries/?C=N;O=D"

0

参考: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>:这是从中下载文件的网站网址。

下载愉快:笑脸:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.