使用WebCollector的redis插件,进行爬取。(使用redis数据库进行任务管理)
/** * RedisCrawler是WebCollector的一个插件,将WebCollector的任务管理交 * 给redis数据库,使WebCollector可以进行海量网页的爬取 */ public class MyCrawler extends RedisCrawler{ public MyCrawler(String tableName,String ip,int port){ super(tableName,ip,port); } @Override public void visit(Page page){ System.out.println(page.getDoc().title()); } /*运行程序前请开启redis数据库*/ public static void main(String[] args) throws Exception{ /*mytest是任务名(用于区别不同爬虫),"127.0.0.1"和6379是redis数据库的ip和端口*/ MyCrawler crawler=new MyCrawler("mytest", "127.0.0.1", 6379); /*爬取合肥工业大学新闻网*/ crawler.addSeed("http://news.hfut.edu.cn/"); crawler.addRegex("http://news.hfut.edu.cn/.*"); /*过滤图片*/ crawler.addRegex("-.*#.*"); crawler.addRegex("-.*png.*"); crawler.addRegex("-.*jpg.*"); crawler.addRegex("-.*gif.*"); crawler.addRegex("-.*js.*"); crawler.addRegex("-.*css.*"); /*设置线程数*/ crawler.setThreads(30); /*设置是否为断点爬取模式*/ crawler.setResumable(false); /*开始深度为5的爬取*/ crawler.start(5); } }