webmagic是java里头比较优秀的一个爬虫框架:html
这里展现一下入门级使用。java
<dependency> <groupId>us.codecraft</groupId> <artifactId>webmagic-core</artifactId> <version>0.7.3</version> </dependency> <dependency> <groupId>us.codecraft</groupId> <artifactId>webmagic-extension</artifactId> <version>0.7.3</version> </dependency>
public static void main(String[] args) { Spider.create(new GithubRepoPageProcessor()) //从https://github.com/code4craft开始抓 .addUrl("https://github.com/code4craft") //设置Scheduler,使用Redis来管理URL队列 .setScheduler(new RedisScheduler("localhost")) //设置Pipeline,将结果以json方式保存到文件 .addPipeline(new JsonFilePipeline("D:\\data\\webmagic")) //开启5个线程同时执行 .thread(5) //启动爬虫 .run(); }
核心的工做主要是自定义PageProcessor,好比git
new PageProcessor() { @Override public void process(Page page) { List<String> links = page.getHtml() .xpath("//table[@id='jrjthreadtable']//td/a/@href") .regex("/msg,\\d+.*.html") .all(); System.out.println(links); } @Override public Site getSite() { return Site.me() .setRetryTimes(3) .setSleepTime(1000) .setTimeOut(10000); }
这里使用了xpath的语法来选取,不熟悉xpath的话,可使用chrome:检查-copy-copy xpath来学习。github