【发布时间】:2011-05-22 00:39:03
【问题描述】:
我目前正在从事一个从 SourceForge 抓取源代码的项目。 我想从代码库下载压缩包。
下面给出了一个示例链接: http://wurfl.cvs.sourceforge.net/viewvc/wurfl/?view=tar
我在下载时遇到的问题是,我无法使用常规的 URLConnection、HttpClient、HtmlUnit、Jsoup 等 API 来下载文件。指定的链接不包含任何文件名或扩展名,这使得下载过程更加复杂。
您能否建议一种方法,通过将一组 tarball 链接作为参数,我应该能够将它们下载到我的磁盘上?另外,我可以使用 wget 下载它。有没有办法我可以在 Windows 中的 Java 中以编程方式做到这一点?
【问题讨论】:
-
为什么不能使用标准Java库下载文件?至于文件名,只需给它一个随机名称和一个
.tar扩展名。您可以使用以下命令生成随机文件名:Long.toHexString(Double.doubleToLongBits(Math.random()));(source)。 -
另见terms of use。
-
您能否具体说明为什么无法使用“常规 url、http、htmlunit、jsoup apis 等”下载文件?共享失败的代码将帮助任何人更好地了解您的问题。
-
顺便说一下,文件名存在于响应的 Content-Disposition 标头中(对于提供的链接)。您需要解析此标头以获取所需的文件名(浏览器也会在“保存文件”对话框中显示该文件名)。
标签: java download web-scraping wget sourceforge