rename
parent
04a7fa037a
commit
a3a868f584
|
@ -18,7 +18,7 @@ import java.util.regex.Pattern;
|
||||||
* @date: 13-8-1 <br>
|
* @date: 13-8-1 <br>
|
||||||
* Time: 下午8:46 <br>
|
* Time: 下午8:46 <br>
|
||||||
*/
|
*/
|
||||||
public class ObjectPageProcessor implements PageProcessor {
|
public class ModelPageProcessor implements PageProcessor {
|
||||||
|
|
||||||
private List<PageModelExtractor> pageModelExtractorList = new ArrayList<PageModelExtractor>();
|
private List<PageModelExtractor> pageModelExtractorList = new ArrayList<PageModelExtractor>();
|
||||||
|
|
||||||
|
@ -26,16 +26,16 @@ public class ObjectPageProcessor implements PageProcessor {
|
||||||
|
|
||||||
private Set<Pattern> targetUrlPatterns = new HashSet<Pattern>();
|
private Set<Pattern> targetUrlPatterns = new HashSet<Pattern>();
|
||||||
|
|
||||||
public static ObjectPageProcessor create(Site site, Class... clazzs) {
|
public static ModelPageProcessor create(Site site, Class... clazzs) {
|
||||||
ObjectPageProcessor objectPageProcessor = new ObjectPageProcessor(site);
|
ModelPageProcessor modelPageProcessor = new ModelPageProcessor(site);
|
||||||
for (Class clazz : clazzs) {
|
for (Class clazz : clazzs) {
|
||||||
objectPageProcessor.addPageModel(clazz);
|
modelPageProcessor.addPageModel(clazz);
|
||||||
}
|
}
|
||||||
return objectPageProcessor;
|
return modelPageProcessor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public ObjectPageProcessor addPageModel(Class clazz) {
|
public ModelPageProcessor addPageModel(Class clazz) {
|
||||||
PageModelExtractor pageModelExtractor = PageModelExtractor.create(clazz);
|
PageModelExtractor pageModelExtractor = PageModelExtractor.create(clazz);
|
||||||
targetUrlPatterns.addAll(pageModelExtractor.getTargetUrlPatterns());
|
targetUrlPatterns.addAll(pageModelExtractor.getTargetUrlPatterns());
|
||||||
targetUrlPatterns.addAll(pageModelExtractor.getHelpUrlPatterns());
|
targetUrlPatterns.addAll(pageModelExtractor.getHelpUrlPatterns());
|
||||||
|
@ -43,7 +43,7 @@ public class ObjectPageProcessor implements PageProcessor {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ObjectPageProcessor(Site site) {
|
private ModelPageProcessor(Site site) {
|
||||||
this.site = site;
|
this.site = site;
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,14 +14,14 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||||
* @date: 13-8-2 <br>
|
* @date: 13-8-2 <br>
|
||||||
* Time: 上午10:47 <br>
|
* Time: 上午10:47 <br>
|
||||||
*/
|
*/
|
||||||
public class ObjectPipeline implements Pipeline {
|
public class ModelPipeline implements Pipeline {
|
||||||
|
|
||||||
private Map<Class, PageModelPipeline> pageModelPipelines = new ConcurrentHashMap<Class, PageModelPipeline>();
|
private Map<Class, PageModelPipeline> pageModelPipelines = new ConcurrentHashMap<Class, PageModelPipeline>();
|
||||||
|
|
||||||
public ObjectPipeline() {
|
public ModelPipeline() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public ObjectPipeline put(Class clazz, PageModelPipeline pageModelPipeline) {
|
public ModelPipeline put(Class clazz, PageModelPipeline pageModelPipeline) {
|
||||||
pageModelPipelines.put(clazz, pageModelPipeline);
|
pageModelPipelines.put(clazz, pageModelPipeline);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
|
@ -15,22 +15,22 @@ public class OOSpider extends Spider {
|
||||||
*
|
*
|
||||||
* @param pageProcessor 已定义的抽取规则
|
* @param pageProcessor 已定义的抽取规则
|
||||||
*/
|
*/
|
||||||
private ObjectPageProcessor objectPageProcessor;
|
private ModelPageProcessor modelPageProcessor;
|
||||||
|
|
||||||
private ObjectPipeline objectPipeline;
|
private ModelPipeline modelPipeline;
|
||||||
|
|
||||||
protected OOSpider(ObjectPageProcessor objectPageProcessor) {
|
protected OOSpider(ModelPageProcessor modelPageProcessor) {
|
||||||
super(objectPageProcessor);
|
super(modelPageProcessor);
|
||||||
this.objectPageProcessor = objectPageProcessor;
|
this.modelPageProcessor = modelPageProcessor;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OOSpider(Site site, PageModelPipeline pageModelPipeline, Class... pageModels) {
|
public OOSpider(Site site, PageModelPipeline pageModelPipeline, Class... pageModels) {
|
||||||
this(ObjectPageProcessor.create(site, pageModels));
|
this(ModelPageProcessor.create(site, pageModels));
|
||||||
this.objectPipeline = new ObjectPipeline();
|
this.modelPipeline = new ModelPipeline();
|
||||||
super.pipeline(objectPipeline);
|
super.pipeline(modelPipeline);
|
||||||
if (pageModelPipeline!=null){
|
if (pageModelPipeline!=null){
|
||||||
for (Class pageModel : pageModels) {
|
for (Class pageModel : pageModels) {
|
||||||
this.objectPipeline.put(pageModel, pageModelPipeline);
|
this.modelPipeline.put(pageModel, pageModelPipeline);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -45,8 +45,8 @@ public class OOSpider extends Spider {
|
||||||
|
|
||||||
public OOSpider addPageModel(PageModelPipeline pageModelPipeline, Class... pageModels) {
|
public OOSpider addPageModel(PageModelPipeline pageModelPipeline, Class... pageModels) {
|
||||||
for (Class pageModel : pageModels) {
|
for (Class pageModel : pageModels) {
|
||||||
objectPageProcessor.addPageModel(pageModel);
|
modelPageProcessor.addPageModel(pageModel);
|
||||||
objectPipeline.put(pageModel, pageModelPipeline);
|
modelPipeline.put(pageModel, pageModelPipeline);
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<html>
|
<html>
|
||||||
<body>
|
<body>
|
||||||
webmagic对抓取器编写的面向对象方式的封装。基于POJO(称为PageModel)及注解即可实现一个PageProcessor。
|
webmagic对抓取器编写的面向模型(称为PageModel)的封装。基于POJO及注解即可实现一个PageProcessor。
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
Loading…
Reference in New Issue