一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

MyEclipse7.0+Heritrix1.14.3的配置_Notes @ UniUni...

 旭龍 2010-12-04
 

本文內(nèi)容:在MyEclipse7.0下配置Heritrix1.14.3,并修改源代碼實(shí)現(xiàn)抓取URL中含有指定字符串的所有網(wǎng)頁。并實(shí)現(xiàn)多線程下載。

1、首先下載heritrix-1.14.3.zip和heritrix-1.14.3-src.zip。將其全部解壓到當(dāng)前文件夾

\eritrix-1.14.3-src\和\heritrix-1.14.3\。

2、解壓heritrix-1.14.3中的heritrix-1.14.3.jar,得到目錄:heritrix-1.14.3。

3、將以上目錄的所有文件拷貝到heritrix-1.14.3-src\heritrix-1.14.3\src\java下。

4、將\heritrix-1.14.3-src\heritrix-1.14.3下的lib目錄拷貝到heritrix-1.14.3-src\heritrix-1.14.3\src\java下。

5、將heritrix-1.14.3-src\heritrix-1.14.3\src下的webapps目錄拷貝到heritrix-1.14.3-src\heritrix-1.14.3\src\java下,此時(shí)工程目錄基本完整。

6、在MyEclipse中新建一個(gè)Java Project,選擇從現(xiàn)有源代碼建立,源代碼路徑指向:heritrix-1.14.3-src\heritrix-1.14.3\src\java,命名為Heritrix,點(diǎn)擊OK。

7、接下來將jar包導(dǎo)入項(xiàng)目。右鍵單擊Heritrix項(xiàng)目,選擇Build Path->Configure Build Path,選中 Libraries選項(xiàng),選擇Add External JARS,將lib下的所有jar包加入到Build Path。

8、在Window->Preference->Java->Compiler中,將Complier compliance level設(shè)為5.0,目的是為了使Heritrix編譯通過。否則Eclipse可能不認(rèn)assert這個(gè)關(guān)鍵字。

9、設(shè)置項(xiàng)目根目錄下的heritrix.properties文件,設(shè)置:"heritrix.cmdline.admin=admin:admin",也就是設(shè)置heritrix控制臺登錄的用戶名和密碼。找到/heritrix/org.archive.crawler/Heritrix.java右鍵點(diǎn)擊,選擇Run As Java Application,(不建議此時(shí)運(yùn)行,建議修改源碼完畢后再運(yùn)行)正常運(yùn)行時(shí)輸出如下信息:

06:15:52.312 EVENT Starting Jetty/4.2.23
06:15:53.781 EVENT Started WebApplicationContext[/,Heritrix Console]
06:15:53.937 EVENT The scratchDir you specified: E:\????\SearchEngingForDlut\heritrix-1.14.3-src\heritrix-1.14.3\src\java\target\jsp-compiled-development is unusable.
06:15:54.218 EVENT Started SocketListener on 127.0.0.1:8080
06:15:54.218 EVENT Started
org.mortbay.jetty.Server@a01335
Heritrix version: 1.14.3

10、在瀏覽器中輸入http://localhost:8080/,用戶名、密碼都是"admin",登陸之后就可以正常使用了,至此配置完畢。

下面修改Heritrix部分源碼,達(dá)到抓取URL中含有指定字符串的目的:如抓取URL字符串中含有"dlut"的所有網(wǎng)頁。

1、首先打開Heritrix/org.archive.crawler.postprocessor/FrontierScheduler.java,里面有一個(gè)方法:protected void schedule(CandidateURI caUri);這個(gè)方法是直接將當(dāng)前的候選連接加入到抓取隊(duì)列當(dāng)中了。因此我們可以構(gòu)造一個(gè)FrontierScheduler的派生類,對候選連接的內(nèi)容做一些判斷,保證抓取到的連接都是含有"dlut"的網(wǎng)址。

2、新建一個(gè)類,叫做FrontierSchedulerForDlut,派生于org.archive.crawler.postprocessor.FrontierScheduler類,

所屬的包為:org.archive.crawler.postprocessor。單擊Finish。代碼如下:

package org.archive.crawler.postprocessor;
import org.archive.crawler.datamodel.CandidateURI;
public class FrontierSchedulerForDlut extends FrontierScheduler {
public FrontierSchedulerForDlut(String name){
super(name);
}

protected void schedule(CandidateURI caUri){
String uri=caUri.toString();
if(uri.indexOf("dns:")!=-1){
getController().getFrontier().schedule(caUri);
}
else if(uri.indexOf("dlut")!=-1
&&(uri.indexOf(".html")!=-1
||uri.indexOf(".htm")!=-1
||uri.indexOf(".jsp")!=-1
||uri.indexOf(".asp")!=-1
||uri.indexOf(".aspx")!=-1)){
System.out.println(uri);
getController().getFrontier().schedule(caUri);

}
}
}

這里我們只抓取網(wǎng)頁,并且抓取的網(wǎng)頁中須含有dlut。
3、在modules文件夾中的Processor.options中添加一行"org.archive.crawler.postprocessor.FrontierSchedulerForDlut|FrontierSchedulerForDlut"的內(nèi)容。

4、取消robots.txt的限制:找到org.archive.crawler.prefetch保重的PreconditionEnforcer這個(gè)類,將方法considerRobotsPreconditions的全部代碼注釋掉,添加return false。

5、至此,可以實(shí)現(xiàn)抓取URL中含有"dlut"的所有網(wǎng)頁了,但為了使程序多線程運(yùn)行,還需修改HostNamesQueueAssignmentPolicy類的getClassKey方法。打開org.archive.crawler.frontier.HostnameQueueAssignmentPolicy這個(gè)類,修改其getClassKey方法,代碼如下:

public String getClassKey(CrawlController controller, CandidateURI cauri) {

String uri = cauri.getUURI().toString();

long hash = ELFHash(uri);

String a = Long.toString(hash % 100);

return a;

}

public long ELFHash(String str)

{

long hash = 0;

long x = 0;

for(int i = 0; i < str.length(); i++)

{

hash = (hash << 4) + str.charAt(i);

if((x = hash & 0xF0000000L) != 0)

{

hash ^= (x >> 24);

hash &= ~x;

}

}

return (hash & 0x7FFFFFFF);

}

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产又粗又猛又长又大| 欧美乱码精品一区二区三| 日韩欧美二区中文字幕| 亚洲乱码av中文一区二区三区| 久久精品视频就在久久| 国产精品福利精品福利| 日本久久精品在线观看| 91亚洲人人在字幕国产| 日韩av生活片一区二区三区| 精品高清美女精品国产区| 亚洲妇女黄色三级视频| 久久99青青精品免费观看| 国产一区二区三区午夜精品| 亚洲av在线视频一区| 激情三级在线观看视频| 男人和女人黄 色大片| 人妻久久这里只有精品| 一区二区三区日本高清| 日本黄色美女日本黄色| 国产亚洲欧美另类久久久| 国产日韩欧美专区一区| 亚洲国产精品久久网午夜| 九九热精彩视频在线播放| 好吊妞视频免费在线观看| 黑人粗大一区二区三区| 国产超碰在线观看免费| 中文字幕乱码一区二区三区四区 | 91欧美日韩国产在线观看| 日韩熟妇人妻一区二区三区 | 熟女中文字幕一区二区三区| 欧美美女视频在线免费看| 亚洲国产综合久久天堂| 国产欧美一区二区久久| 麻豆精品视频一二三区| 欧美精品一区二区水蜜桃| 日本视频在线观看不卡| 欧美成人精品一区二区久久| 国产精品一区二区日韩新区| 亚洲一区二区三区精选| 亚洲中文字幕熟女丝袜久久| 91精品蜜臀一区二区三区|