【轉(zhuǎn)】Heritrix 綁定IP、啟動參數(shù)、中文亂碼
Posted on 2012-12-21 12:34 小胡子 閱讀(571) 評論(0) 編輯 收藏 所屬分類: HeritrixHeritrix資源
網(wǎng)絡(luò)上的Heritrix中文資源比較少,整理一下:
中文:
l 《開發(fā)自己的搜索引擎 Lucene 2.0 + Heritrix》作者邱哲&符滔滔的BLOG
http://lucenebook.spaces.live.com/
l 《開發(fā)自己的搜索引擎 Lucene 2.0 + Heriterx》第十章擴展Heritrix試讀章節(jié)
(可以考慮開發(fā)的,比較有用)
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
關(guān)鍵字: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參數(shù)時,才會把指定的IP賦給主機變量。
另外,中間還有一步參數(shù)處理,對于--xxxx參數(shù)會轉(zhuǎn)為-x的形式統(tǒng)一處理,所以--bind和-b有一樣的效果。
Heritrix啟動參數(shù)
關(guān)鍵字:Heritrix 啟動 參數(shù) bind admin properties
Heritrix的啟動參數(shù),除了--bind外,都可以在heritrix.properties設(shè)置,而不用每次都在命令行中輸入。
如常用的--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 |
關(guān)于Heritrix的Extractor中文亂碼
關(guān)鍵字:Heritrix 中文 亂碼 GB2312 Extractor
繼承從org.archive.crawler.extractor.Extractor的子類,在extract方法中可以從參數(shù)CrawlURI中取出要解析的內(nèi)容。
curi.getHttpRecorder().getReplayCharSequence.toString() |
有中文時,不做處理會輸出亂碼。可以在取到的HttpRecorder后設(shè)置編碼:
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() ); |
原文出自: