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