國慶第三天2014年10月3日10:21:39,Nutz,WebCollector,jsoup

(1)作得好,作得快,只能選擇同樣。html

(2)時間過得很快,你無法在假期的一天裏完成更多的計劃。假期所有由本身支配,相對長一點的睡眠,新加入的娛樂(視頻或者遊戲),你不比在工做中更有效率。java

(3)天天練習一點,記錄下來。假期來整合優化鞏固,是最好的選擇。進步每一天。node

(4)不要太期待假期。git

(5)參照Nutz 入門教程第一講,作一個小應用。 視頻不清晰仍是看完兩遍,仍是照着一點點的寫出來。視頻比較直觀,Nutz的文檔很詳細的,可是任然以爲看視頻仍是更快,看文檔太慢了,或許我看文檔的方式要改進下。github

(6)JAVA爬蟲 WebCollector: web

官網APIosc簡介Cookbook&Apiide

一個讀取API的例子:MyParser.java, DocCrawler.java優化

package demo.hello;

import java.io.UnsupportedEncodingException;

import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import cn.edu.hfut.dmic.webcollector.model.Link;
import cn.edu.hfut.dmic.webcollector.model.Page;
import cn.edu.hfut.dmic.webcollector.parser.HtmlParser;
import cn.edu.hfut.dmic.webcollector.parser.ParseResult;

public class MyParser extends HtmlParser{
    public MyParser(Integer topN) {
        super(topN);
    }

    @Override
    public ParseResult getParse(Page page) throws UnsupportedEncodingException {
        ParseResult parseResult= super.getParse(page);
        Elements frames=page.getDoc().select("frame[src]");
        for(Element frame:frames){
            Link link=new Link();
            link.setAnchor("");
            link.setUrl(frame.attr("abs:src"));
            parseResult.getParsedata().getLinks().add(link);
        }
        return parseResult;
    }
}
View Code
package demo.hello;

import cn.edu.hfut.dmic.webcollector.crawler.BreadthCrawler;
import cn.edu.hfut.dmic.webcollector.model.Page;
import cn.edu.hfut.dmic.webcollector.parser.Parser;
import cn.edu.hfut.dmic.webcollector.util.Config;

public class DocCrawler extends BreadthCrawler{
    @Override
    public Parser createParser(String url, String contentType) throws Exception {
        if(contentType==null)
            return null;
        if(!contentType.contains("text/html"))
            return null;
        return new MyParser(Config.topN);
    }

    public static void main(String[] args) throws Exception{
        DocCrawler crawler=new DocCrawler();
        crawler.addSeed("http://crawlscript.github.io/WebCollectorDoc/");
        crawler.addRegex("http://crawlscript.github.io/WebCollectorDoc.*");
        crawler.setRoot("pages");
        crawler.setThreads(20);
        crawler.start(10);
    }
}
View Code

(7)HTML解析器 jsoup
官網osc簡介url

相關文章
相關標籤/搜索