webmagic小試牛刀

webmagic是java裏頭比較優秀的一個爬蟲框架:html

  • 使用Jsoup做爲HTML解析工具,並基於其開發瞭解析XPath的工具Xsoup。
  • 默認使用了Apache HttpClient做爲下載工具。

這裏展現一下入門級使用。java

maven

<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

核心的工做主要是自定義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

doc

相關文章
相關標籤/搜索