子任务可以使用不同的下载器。。。

pull/974/head
itranlin 4 years ago
parent 4b902270b4
commit fc7ae9ce28

@ -1,5 +1,6 @@
package us.codecraft.webmagic;
import us.codecraft.webmagic.downloader.Downloader;
import us.codecraft.webmagic.model.HttpRequestBody;
import us.codecraft.webmagic.utils.Experimental;
@ -26,6 +27,11 @@ public class Request implements Serializable {
private HttpRequestBody requestBody;
/**
* this req use this downloader
*/
private Downloader downloader;
/**
* Store additional information in extras.
*/
@ -175,6 +181,14 @@ public class Request implements Serializable {
return binaryContent;
}
public Downloader getDownloader() {
return downloader;
}
public void setDownloader(Downloader downloader) {
this.downloader = downloader;
}
public Request setBinaryContent(boolean binaryContent) {
this.binaryContent = binaryContent;
return this;

@ -401,7 +401,12 @@ public class Spider implements Runnable, Task {
}
private void processRequest(Request request) {
Page page = downloader.download(request, this);
Page page;
if (null != request.getDownloader()){
page = request.getDownloader().download(request,this);
}else {
page = downloader.download(request, this);
}
if (page.isDownloadSuccess()){
onDownloadSuccess(request, page);
} else {

Loading…
Cancel
Save