Commit 5c96407a authored by yihua.huang's avatar yihua.huang

fix a null domain error

parent f4134504
package us.codecraft.webmagic; package us.codecraft.webmagic;
import us.codecraft.webmagic.utils.UrlUtils;
import java.util.*; import java.util.*;
/** /**
...@@ -90,6 +92,11 @@ public class Site { ...@@ -90,6 +92,11 @@ public class Site {
* @return 已设置的domain * @return 已设置的domain
*/ */
public String getDomain() { public String getDomain() {
if (domain == null) {
if (startUrls.size() > 0) {
domain = UrlUtils.getDomain(startUrls.get(0));
}
}
return domain; return domain;
} }
...@@ -150,6 +157,7 @@ public class Site { ...@@ -150,6 +157,7 @@ public class Site {
/** /**
* 获取初始页面的地址列表 * 获取初始页面的地址列表
*
* @return 初始页面的地址列表 * @return 初始页面的地址列表
*/ */
public List<String> getStartUrls() { public List<String> getStartUrls() {
...@@ -158,6 +166,7 @@ public class Site { ...@@ -158,6 +166,7 @@ public class Site {
/** /**
* 增加初始页面的地址,可反复调用此方法增加多个初始地址。 * 增加初始页面的地址,可反复调用此方法增加多个初始地址。
*
* @param startUrl 初始页面的地址 * @param startUrl 初始页面的地址
* @return this * @return this
*/ */
...@@ -179,6 +188,7 @@ public class Site { ...@@ -179,6 +188,7 @@ public class Site {
/** /**
* 获取两次抓取之间的间隔 * 获取两次抓取之间的间隔
*
* @return 两次抓取之间的间隔,单位毫秒 * @return 两次抓取之间的间隔,单位毫秒
*/ */
public int getSleepTime() { public int getSleepTime() {
...@@ -187,6 +197,7 @@ public class Site { ...@@ -187,6 +197,7 @@ public class Site {
/** /**
* 获取重新下载的次数,默认为0 * 获取重新下载的次数,默认为0
*
* @return 重新下载的次数 * @return 重新下载的次数
*/ */
public int getRetryTimes() { public int getRetryTimes() {
...@@ -195,6 +206,7 @@ public class Site { ...@@ -195,6 +206,7 @@ public class Site {
/** /**
* 设置获取重新下载的次数,默认为0 * 设置获取重新下载的次数,默认为0
*
* @return this * @return this
*/ */
public Site setRetryTimes(int retryTimes) { public Site setRetryTimes(int retryTimes) {
...@@ -219,7 +231,7 @@ public class Site { ...@@ -219,7 +231,7 @@ public class Site {
return true; return true;
} }
public Task toTask(){ public Task toTask() {
return new Task() { return new Task() {
@Override @Override
public String getUUID() { public String getUUID() {
......
...@@ -4,6 +4,8 @@ import us.codecraft.webmagic.Site; ...@@ -4,6 +4,8 @@ import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.model.ExtractBy; import us.codecraft.webmagic.model.ExtractBy;
import us.codecraft.webmagic.model.OOSpider; import us.codecraft.webmagic.model.OOSpider;
import us.codecraft.webmagic.model.TargetUrl; import us.codecraft.webmagic.model.TargetUrl;
import us.codecraft.webmagic.pipeline.ConsolePipeline;
import us.codecraft.webmagic.pipeline.JsonFilePipeline;
/** /**
* @author code4crafter@gmail.com <br> * @author code4crafter@gmail.com <br>
...@@ -28,7 +30,7 @@ public class OschinaBlog implements Blog{ ...@@ -28,7 +30,7 @@ public class OschinaBlog implements Blog{
} }
public static void main(String[] args) { public static void main(String[] args) {
OOSpider.create(Site.me().addStartUrl("http://my.oschina.net/flashsword/blog"), OschinaBlog.class).run(); OOSpider.create(Site.me().addStartUrl("http://my.oschina.net/flashsword/blog"), OschinaBlog.class).pipeline(new ConsolePipeline()).pipeline(new JsonFilePipeline()).run();
} }
public String getTitle() { public String getTitle() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment