diff --git a/webmagic-core/src/main/java/us/codecraft/webmagic/processor/PageProcessor.java b/webmagic-core/src/main/java/us/codecraft/webmagic/processor/PageProcessor.java
index 1fb125c..3d79b96 100644
--- a/webmagic-core/src/main/java/us/codecraft/webmagic/processor/PageProcessor.java
+++ b/webmagic-core/src/main/java/us/codecraft/webmagic/processor/PageProcessor.java
@@ -4,13 +4,16 @@ import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
/**
- * Interface to be implemented to customize a crawler.
- *
+ * Interface to be implemented to customize a crawler.
+ *
+ *
* In PageProcessor, you can customize:
- *
- * start urls and other settings in {@link Site}
- * how the urls to fetch are detected
- * how the data are extracted and stored
+ *
+ *
+ * - start URLs and other settings in {@link Site}
+ * - how the URLs to fetch are detected
+ * - how the data are extracted and stored
+ *
*
* @author code4crafter@gmail.com
* @see Site
@@ -20,17 +23,20 @@ import us.codecraft.webmagic.Site;
public interface PageProcessor {
/**
- * process the page, extract urls to fetch, extract the data and store
+ * Processes the page, extract URLs to fetch, extract the data and store.
*
* @param page page
*/
- public void process(Page page);
+ void process(Page page);
/**
- * get the site settings
+ * Returns the site settings.
*
* @return site
* @see Site
*/
- public Site getSite();
+ default Site getSite() {
+ return Site.me();
+ }
+
}
diff --git a/webmagic-core/src/test/java/us/codecraft/webmagic/processor/PageProcessorTest.java b/webmagic-core/src/test/java/us/codecraft/webmagic/processor/PageProcessorTest.java
new file mode 100644
index 0000000..ebb1225
--- /dev/null
+++ b/webmagic-core/src/test/java/us/codecraft/webmagic/processor/PageProcessorTest.java
@@ -0,0 +1,40 @@
+package us.codecraft.webmagic.processor;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+
+import us.codecraft.webmagic.Page;
+import us.codecraft.webmagic.Site;
+
+public class PageProcessorTest {
+
+ @Test
+ public void testGetSite() {
+ Site actualSite = new PageProcessor() {
+
+ @Override
+ public void process(Page page) {
+ }
+
+ }.getSite();
+
+ assertEquals(Site.me(), actualSite);
+
+ actualSite = new PageProcessor() {
+
+ @Override
+ public void process(Page page) {
+ }
+
+ @Override
+ public Site getSite() {
+ return Site.me().setTimeOut(123);
+ };
+
+ }.getSite();
+
+ assertEquals(Site.me().setTimeOut(123), actualSite);
+ }
+
+}