利用JDK8的新特性,编写接口解析的JAVA爬虫爬下来的原始数据.
default:在不破坏java现有实现架构的情况下能往接口里增加新方法.
- /**
- * 找出待处理的origin-data,然后执行解析、保存、更新OriginData一系列操作
- */
- default void findAndParse(){
- Document document = null;
- //获得数据库的连接
- MongoCollection originColl = MongoUtils.getMongoCollection(COL_ORIGIN_DATA);
- //查询原数据表在集合中的状态和数据类型
- MongoCursor<Document> cursor = originColl.find(and(eq("status", Status.PENDING), eq("category", getCategory()))).iterator();
- //循环集合中的每一条记录(对每个数据执行指定的代码 )
- cursor.forEachRemaining(d->{
- try {
- //解析并保存实体
- T entity = parse(d);
- save(entity);
- //更新原数据表的属性
- // updateOriginData(d.getObjectId("_id").toString(), Status.DONE, Status.DONE);
- }catch (Exception e){
- //解析失败时,把解析出错的完整信息存储到原数据表中
- // updateOriginData(d.getObjectId("_id").toString(),Status.FAILED, ExceptionUtils.getStackTrace(e));
- //在控制台打印出错的信息
- e.printStackTrace();
- }
- });
- }
来源: https://www.oschina.net/code/snippet_2489258_58647