Heritrix資源
網絡上的Heritrix中文資源比較少,整理一下:
中文:
l 《開發自己的搜索引擎 Lucene 2.0 + Heritrix》作者邱哲&符滔滔的BLOG
http://lucenebook.spaces.live.com/
l 《開發自己的搜索引擎 Lucene 2.0 + Heriterx》第十章擴展Heritrix試讀章節
(可以考慮開發的,比較有用)
http://book.csdn.net/bookfiles/312/10031212848.shtml
l Heritrix筆記
http://wiki.hoodong.com/wiki/jRwNBCFgWA1dYB0NC
l Heritrix crawler vs Nutch crawler
http://www.dbanotes.net/web/heritrix_crawler_vs_nutch_crawler.html
l 天下維客-爬蟲程序
http://www.allwiki.com/wiki/Heritrix#Heritrix.E7.9A.84.E5.B1.80.E9.99.90
英文:
l Heritrix主頁
l HTMLParser主頁
Heritrix綁定主機IP
關鍵字:Heritrix 127.0.0.1 IP 主機
Heritrix默認綁定的IP是127.0.0.1。
在org.archive.crawler.Heritrix中
… final private static Collection<String> LOCALHOST_ONLY = Collections.unmodifiableList(Arrays.asList(new String[] { "127.0.0.1" })); … private static Collection<String> guiHosts = LOCALHOST_ONLY;
protected static String doCmdLineArgs(final String [] args) throws Exception { … // Now look at options passed. for (int i = 0; i < options.length; i++) { switch(options[i].getId()) { … case 'b': Heritrix.guiHosts = parseHosts(options[i].getValue()); break; … default: assert false: options[i].getId(); } } … } |
首先定義了默認IP:127.0.0.1,然后賦給guiHost主機變量。當指定-b或--bind參數時,才會把指定的IP賦給主機變量。
另外,中間還有一步參數處理,對于--xxxx參數會轉為-x的形式統一處理,所以--bind和-b有一樣的效果。
Heritrix啟動參數
關鍵字:Heritrix 啟動 參數 bind admin properties
Heritrix的啟動參數,除了--bind外,都可以在heritrix.properties設置,而不用每次都在命令行中輸入。
如常用的--port, --admin等。
heritrix.cmdline.admin = admin:admin heritrix.cmdline.port = 8080 heritrix.cmdline.run = false heritrix.cmdline.nowui = false heritrix.cmdline.order = heritrix.cmdline.jmxserver = false heritrix.cmdline.jmxserver.port = 8081 |
關于Heritrix的Extractor中文亂碼
關鍵字:Heritrix 中文 亂碼 GB2312 Extractor
繼承從org.archive.crawler.extractor.Extractor的子類,在extract方法中可以從參數CrawlURI中取出要解析的內容。
curi.getHttpRecorder().getReplayCharSequence.toString() |
有中文時,不做處理會輸出亂碼。可以在取到的HttpRecorder后設置編碼:
HttpRecorder hr = curi.getHttpRecorder(); if ( hr == null ) { throw new IOException( "Why is recorder null here?" ); } hr.setCharacterEncoding( "gb2312" ); cs = hr.getReplayCharSequence(); System.out.println( cs.toString() ); |
原文出自: