我需要从一个页面自动下载带有多个链接的文件(可能超过 100 个带有单独链接的文件)。我知道登录的 URL 并且我有凭据。
我愿意在 Java 程序中自动执行此操作。进入下载位置页面的唯一方法是登录网站。
cURL 命令对此有帮助吗?
请建议我这样做。
最佳答案
您可以使用 wget 来下载日志文件:
wget -r --no-parent --user=user --password=password --no-check-certificate <URL>
- 您可以在 --header 中传递 header ,例如--header "Cookie: JSONSESSIONID=3433434343434"
- 您可以使用 --post-data 'email=$EMAIL&password=$PASSWRD' 传递发布数据
或者您可以在 java 中使用以下 HttpClient:
- 这里是 HTTPClient 的例子用于登录和传递 POST/GET/Headers 信息
- 首先将整个 HTML 页面获取为字符串
- 要么解析该字符串以获取文件链接,要么使用 XML 到对象映射器(如 https://github.com/FasterXML/jackson-dataformat-xml)转换为 java 对象
- 获取文件链接后,使用 HttpClient 下载文件
public void saveFile(String url, String FileName) throws ClientProtocolException, IOException{ HttpGet httpget = new HttpGet(url); HttpResponse response = httpClient.execute(httpget); HttpEntity entity = response.getEntity(); if (entity != null) { long len = entity.getContentLength(); InputStream is = entity.getContent(); FileOutputStream fos = new FileOutputStream(new File(filePath))); IOUtils.copy(is, fos); } return; }
关于java - 如何使用java程序自动下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22627632/