Commit 8958d774 authored by yihua.huang's avatar yihua.huang

add default values for @Formatter

parent 90447bff
...@@ -26,11 +26,11 @@ public class OschinaBlog { ...@@ -26,11 +26,11 @@ public class OschinaBlog {
@ExtractBy(value = "//div[@class='BlogTags']/a/text()", multi = true) @ExtractBy(value = "//div[@class='BlogTags']/a/text()", multi = true)
private List<String> tags; private List<String> tags;
@Formatter("yyyy-MM-dd HH:mm")
@ExtractBy("//div[@class='BlogStat']/regex('\\d+-\\d+-\\d+\\s+\\d+:\\d+')") @ExtractBy("//div[@class='BlogStat']/regex('\\d+-\\d+-\\d+\\s+\\d+:\\d+')")
private Date date; private Date date;
public static void main(String[] args) { public static void main(String[] args) {
//results will be saved to "/data/webmagic/" in json format
OOSpider.create(Site.me(), new JsonFilePageModelPipeline("/data/webmagic/"), OschinaBlog.class) OOSpider.create(Site.me(), new JsonFilePageModelPipeline("/data/webmagic/"), OschinaBlog.class)
.addUrl("http://my.oschina.net/flashsword/blog").run(); .addUrl("http://my.oschina.net/flashsword/blog").run();
} }
......
...@@ -21,7 +21,7 @@ public @interface Formatter { ...@@ -21,7 +21,7 @@ public @interface Formatter {
* *
* @return formatter params * @return formatter params
*/ */
String[] value(); String[] value() default "";
/** /**
* Specific the class of field of class of elements in collection for field. <br/> * Specific the class of field of class of elements in collection for field. <br/>
......
...@@ -10,7 +10,8 @@ import java.util.Date; ...@@ -10,7 +10,8 @@ import java.util.Date;
*/ */
public class DateFormatter implements ObjectFormatter<Date> { public class DateFormatter implements ObjectFormatter<Date> {
private String[] datePatterns = new String[]{"yyyy-MM-dd HH:mm"}; public static final String[] DEFAULT_PATTERN = new String[]{"yyyy-MM-dd HH:mm"};
private String[] datePatterns = DEFAULT_PATTERN;
@Override @Override
public Date format(String raw) throws Exception { public Date format(String raw) throws Exception {
...@@ -24,6 +25,8 @@ public class DateFormatter implements ObjectFormatter<Date> { ...@@ -24,6 +25,8 @@ public class DateFormatter implements ObjectFormatter<Date> {
@Override @Override
public void initParam(String[] extra) { public void initParam(String[] extra) {
if (extra != null && !(extra.length == 1 && extra[0].length() == 0)) {
datePatterns = extra; datePatterns = extra;
} }
}
} }
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yy-MM-dd HH:mm:ss,SSS} %-5p %c(%F:%L) ## %m%n" />
</layout>
</appender>
<logger name="org.apache" additivity="false">
<level value="warn" />
<appender-ref ref="stdout" />
</logger>
<root>
<level value="info" />
<appender-ref ref="stdout" />
</root>
</log4j:configuration>
...@@ -8,23 +8,13 @@ ...@@ -8,23 +8,13 @@
</layout> </layout>
</appender> </appender>
<logger name="org.springframework" additivity="false">
<level value="warn" />
<appender-ref ref="stdout" />
</logger>
<logger name="org.apache" additivity="false"> <logger name="org.apache" additivity="false">
<level value="warn" /> <level value="warn" />
<appender-ref ref="stdout" /> <appender-ref ref="stdout" />
</logger> </logger>
<logger name="net.sf.ehcache" additivity="false">
<level value="warn" />
<appender-ref ref="stdout" />
</logger>
<root> <root>
<level value="debug" /> <level value="info" />
<appender-ref ref="stdout" /> <appender-ref ref="stdout" />
</root> </root>
......
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