heritrix有5条链,网上有说在extractor链里做处理,该链是抽取链,可以负责解析html页面的内容,然后进一步筛选。但是我目前只想通过判断后缀名筛选出html、htm、shtml、xshtml等文件。因此这样在extractor里做处理就有点牛刀小用的意思,因此我在postprocessor链里做处理。详细介绍如下:
FronitierScheduler是一种PostProcessor,它的作用是将Extractor中分析得到链接加入到Froniter中,以供下一步处理(写文件处理等等)。
具体方法:
1.找到org.archive.crawler.postprocessor包下的FrontierScheduler.java文件
2.找到FrontierScheduler类的protected void schedule(CandidateURI caUri)方法
立即学习“前端免费学习笔记(深入)”;
3.我的改写如下:
protected void schedule(CandidateURI caUri) { //将caUri转为String格式 String url = caUri.toString(); //打印出来查看一下 System.out.println("------" + url); //剔除以特定后缀名结尾的URL if(url.endsWith(".jpeg") ||url.endsWith(".jpg") ||url.endsWith(".gif") ||url.endsWith(".css") ||url.endsWith(".doc") ||url.endsWith(".zip") ||url.endsWith(".png") ||url.endsWith(".js") ||url.endsWith(".pdf") ||url.endsWith(".xls") ||url.endsWith(".rar") ||url.endsWith(".exe") ||url.endsWith(".txt")){ return; } //将未剔除的文件加入到下一步处理(写入到本地磁盘的处理等等) getController().getFrontier().schedule(caUri); }
登录后复制
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3102607.html