上一篇:Java網路爬蟲實操(8)
大家好,上一篇講到了下載器。這篇介紹爬蟲框架NetDiscovery新增的FileDownloader下載器,用於下載二進位制流資源(office文件、rar壓縮包、圖片等)的下載器。
1) 下載圖片檔案
- 準備好資源的url
- 設定儲存到本地的資料夾和檔名
- 設定好下載器
package com.cv4j.netdiscovery.example;
import com.cv4j.netdiscovery.core.Spider;
import com.cv4j.netdiscovery.core.domain.Request;
import com.cv4j.netdiscovery.core.downloader.file.FileDownloadAfterRequest;
import com.cv4j.netdiscovery.core.downloader.file.FileDownloader;
public class DownloadFiles {
public static void main(String[] args) {
//1、檔案下載後儲存的目錄(不存在的話,程式會自動建立的)
String filePath = "D:\\savedir";
//2、指定資源的路徑和儲存檔名
//也可以參考FileDownloadAfterRequest類自定義parser類,實現下載功能
Request request = new Request("http://cdn2.jianshu.io/assets/web/nav-logo-4c7bbafe27adc892f3046e6978459bac.png");
request.afterRequest(new FileDownloadAfterRequest(filePath, "jianshu.png"));
//3. 構建一個爬蟲,設定好下載器FileDownloader
Spider.create()
.request(request)
.downloader(new FileDownloader())
.run();
}
}
複製程式碼
下載成功
2) 下載rar檔案
package com.cv4j.netdiscovery.example;
import com.cv4j.netdiscovery.core.Spider;
import com.cv4j.netdiscovery.core.domain.Request;
import com.cv4j.netdiscovery.core.downloader.file.FileDownloadAfterRequest;
import com.cv4j.netdiscovery.core.downloader.file.FileDownloader;
public class DownloadFiles {
public static void main(String[] args) {
Request request = new Request("http://jsdx.sc.chinaz.com/Files/DownLoad/moban/201803/zppt2624.rar");
request.afterRequest(new FileDownloadAfterRequest("D:\\savedir", "1.rar"));
Spider.create()
.request(request)
.downloader(new FileDownloader())
.run();
}
}
複製程式碼
下載成功
3) 下載多個rar檔案
- request(Request... requests) 支援傳入多個引數
- 構建request陣列
- 傳入request方法
- 如果下載的檔案比較大,要耐心等待程式執行完。
package com.cv4j.netdiscovery.example;
import com.cv4j.netdiscovery.core.Spider;
import com.cv4j.netdiscovery.core.domain.Request;
import com.cv4j.netdiscovery.core.downloader.file.FileDownloadAfterRequest;
import com.cv4j.netdiscovery.core.downloader.file.FileDownloader;
public class DownloadFiles {
public static void main(String[] args) {
//一次下載3個資源
String[] urls = {"http://jsdx.sc.chinaz.com/Files/DownLoad/moban/201803/zppt2615.rar"
,"http://jsdx.sc.chinaz.com/Files/DownLoad/moban/201803/zppt2639.rar"
,"http://jsdx.sc.chinaz.com/Files/DownLoad/moban/201803/zppt2624.rar"};
String filePath = "D:\\savedir";
//構建Request陣列
Request[] requests = new Request[urls.length];
for (int i = 0; i < requests.length; i++) {
String fileName = (i+1)+".rar";
requests[i] = new Request(urls[i])
.afterRequest(new FileDownloadAfterRequest(filePath, fileName));
}
Spider.create()
.request()
.downloader(new FileDownloader())
.run();
}
}
複製程式碼
下載成功
大家有興趣可以去試試下載word文件等資源。總之,通過框架NetDiscovery下載資源就是這麼方便。當然,FileDownloader和FileDownloadAfterRequest等相關的原始碼也可以瞭解一下,相信對檔案下載會有更深刻的認識。
上一篇:Java網路爬蟲實操(10)