<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    herodby
    技術 筆記
    posts - 14,  comments - 14,  trackbacks - 0

             最近一直想寫個和搜索相關的東東,所以簡單了解搜索引擎方面的知識,個人總結一個垂直搜索引擎 包含以下幾個部分:
             1   web 爬蟲,抓取目標頁面的內容。
             2  數(shù)據(jù)預處理,把抓取下來的數(shù)據(jù)進行去噪,例如使用htmlparser等工具對去掉無用的標簽數(shù)據(jù)等等,把 
                 數(shù)據(jù)結構化DB或者其他存儲系統(tǒng)已被后面使用。
             3. 建立索引。
             4. 分詞,開發(fā)檢索因子, 對索引數(shù)據(jù)進行檢索。
             5. 把檢索到的數(shù)據(jù),在web段展現(xiàn)。
      下面就結合heritrix1.14.3  和lucence2.2.0,介紹下,整個搜索引擎的開發(fā)過程。

    基于lucence+heritrix的開源搜索引擎構建
             

        基于lucence+heritrix的開源搜索引擎構建

    一 Heritrix

      簡介

       Heritrix是 一個用java編寫的,開源的,可擴展的 網絡爬蟲工具,嚴格遵守robot規(guī)范。 Heritrix,目前還沒有在windows測試過,linux環(huán)境測試通過。筆者為了方便開發(fā)需要,本文檔基于在windows上開發(fā)編寫的。

      

      第一節(jié)   安裝和運行Heritrix ,Heritrix的基本配置文件說明

       可以到sourceforge上找到heritrix的官方下載地址http://sourceforge.net/projects/archive-crawler下載。

       軟件支持:

    因為heritrix使用java編寫的,所以需要jdk,筆者的下載的是目前最新版本的heritrix 1.14.3版本),需要安裝jdk1.5以后的版本jdk,故筆者安裝了jdk1.6

    硬件支持:

    Heritrix對硬件要求不高,默認需要256M內存運行,也可以修改具體見后面對啟動腳本的修改部分。

    假定 把下載包heritrix1.14.3.zip 解壓縮到 E:\develop\opensource\heritrix-1.14.3  目錄下。

    假定jdk的安裝目錄是 d:/program files/java 目錄下。

    設定環(huán)境變量

    JAVA_HOME            D:\Program Files\java\jdk1.6.0_02

    HERITRIX_HOME       E:\develop\opensource\heritrix-1.14.3\heritrix-1.14.3

    設置完成之后,打開dos窗口,進入 $HERITRIX_HOME\bin目錄下,運行 

        heritrix --help

    控制臺會輸出 heritrix啟動的命令參數(shù):

      Usage: heritrix --help

      Usage: heritrix --nowui ORDER.XML

      Usage: heritrix [--port=#] [--run] [--bind=IP,IP...] --admin=LOGIN:PASSWORD \

          [ORDER.XML]

      Usage: heritrix [--port=#] --selftest[=TESTNAME]

      Version: @VERSION@

      Options:

       -b,--bind       Comma-separated list of IP addresses or hostnames for web

                       server to listen on.  Set to / to listen on all available

                       network interfaces.  Default is 127.0.0.1.

       -a,--admin      Login and password for web user interface administration.

                       Required (unless passed via the 'heritrix.cmdline.admin'

                       system property).  Pass value of the form 'LOGIN:PASSWORD'.

       -h,--help       Prints this message and exits.

       -n,--nowui      Put heritrix into run mode and begin crawl using ORDER.XML. Do

                       not put up web user interface.

       -p,--port       Port to run web user interface on.  Default: 8080.

       -r,--run        Put heritrix into run mode. If ORDER.XML begin crawl.

       -s,--selftest   Run the integrated selftests. Pass test name to test it only

                       (Case sensitive: E.g. pass 'Charset' to run charset selftest).

      Arguments:

       ORDER.XML       Crawl order to run.

    運行  heritrix --admin=LOGIN:PASSWORD

     至此,heritrix的守護進程就啟動起來了。簡單吧,不過別高興,麻煩的事情還在后面。

    Heritrix的配置文件:

       Heritrix的啟動腳本文件是 bin目錄下的heritrix文件,java虛擬機的環(huán)境設置可以在這個文件里修改,例如前面提到的修改內存大小可以在這個文件中加入:

    % JAVA_OPTS="-Xmx512m"

    把虛擬機使用的最大內存改成512m

    另外也可以在 控制臺 在啟動heritrix時通過命令行改變heritrix行為,同時也可以修改conf目錄下的heritrix.properties文件,來改變heritrix的行為。下面介紹一些heritrix常用的屬性配置:

    Heritrix.version   配置heritirx的版本

     heritrix.jobsdir = jobs  配置 抓取的文件存放路徑,默認存放到 $HERITRIX_HOME/jbos 目錄下。

    heritrix.cmdline.admin = admin:admin   可以在這里寫好登錄的用戶名密碼,也可以在啟動的時候通過命令行指定

    heritrix.cmdline.port = 8080   web ui控制端訪問的端口

    heritrix.cmdline.run = false  如果設置成trueheritrix在啟動時,就會把所有的job啟動。

    heritrix.cmdline.nowui = false  如果設置成true,會阻止通過web方式操作爬蟲 控制臺

    heritrix.cmdline.order =  如果設置了一個string的 文件目錄值,將會使用用戶指定的orderXml文件

    heritrix.cmdline.jmxserver = false

    heritrix.cmdline.jmxserver.port = 8081

    以上配置完成,就可以啟動heritrix,并且通過web ui的方式訪問了 http://127.0.0.1:8080/admin。進入login頁面輸入在配置文件中配置的用戶名密碼。就可以進入控制臺了。

    第二節(jié)  定制第一個網頁抓取任務 

     啟動heritrix,通過瀏覽器訪問 http://127.0.0.1:8080/admin, 輸入用戶名密碼,進入控制臺。點擊job 標簽頁,點擊 with default 使用默認的描述文件創(chuàng)建一個抓取job,打開的窗口:

    Name of new job :隨便輸入一個方面自己記憶的名字

    Description:  隨便輸入

    Seeds:  輸入要抓取的種子頁面。例如要抓取 某個網站的所有產品頁面的詳細信息,那么種子應該是這些產品的列表頁面,也就是說從這個頁面可以進入每個產品的詳細頁面。

    填寫完成之后點擊modules,進入設置頁面,可以設置的項比較多,這里只挑幾個重點的介紹下:

    Select Crawl Scope

     BroadScope  從字面上理解應該是最大范圍的抓取,個人感覺應該是最大深度的爬取網頁

    其他的幾個,筆者沒有用到,暫時不做介紹了,免得寫的有出入誤導讀者。

    Select URI Frontier 

       

    Url 處理器它將決定下一個被處理的URL是什么。同時,它還會將經由處理器鏈所解析出來的URL加入到等待處理的隊列中去。

    BDBFronter  heritrix 默認使用的處理器。這個類的具體邏輯沒有仔細研究過,因為筆者寫了自己的fronter類,來完成處理邏輯,在后面的章節(jié)里面介紹

    這兩個配置是最核心的配置,后面還有5個配置,都是可以自己定制的。大致看下就明白是什么意思了,在這里就不贅述了。特別強調下Select Writers  的配置,主要是用于將所抓取到的信息寫入磁盤。通常寫入磁盤時有兩種形式,一種是采用壓縮的方式寫入,在這里被稱為Arc方式,另一種則采用鏡象方式寫入。當然處理起來,鏡象方式要更為容易一些,因此 用mirror方式存儲。

    關于module里面配置,如果想了解每個配置節(jié)點都是什么意思,可以看下官方文檔,里面有有每個選項的詳細字典說明

    設置完module,點擊setting鏈接,進入job設置頁面,這個頁面的設置也比較容易理解。這里特殊說下http-headers的配置:

      User-agent  模擬瀏覽器的header,里面請?zhí)顚懣蛻舳蔚臑g覽器的user-agent

       Mozilla/5.0 (compatible; heritrix/1.14.3 +PROJECT_URL_HERE),把PROJECT_URL_HERE 替換成任意一個帶有http的完整鏈接即可例如:http://192.168.10.123

    From 里面隨便填寫一個email格式的email地址即可,不必是真實的email地址。

    其他的配置,都比較容易理解,如果有不清楚的,可以點擊每個輸入框前面的問號,heritrix會告訴你這個輸入框里的值是用來做什么的,應該填寫什么值。

    這個頁面配置完成后,就可以提交job了。提交之后,進入到cosole主控制臺頁面,應該可以看到剛才創(chuàng)建的job,點擊start 開始執(zhí)行任務了。 在控制臺上可以監(jiān)控到任務執(zhí)行時,系統(tǒng)的資源消耗情況和任務執(zhí)行情況,同時也可以隨時暫停任務和終止任務。

    小結 :       至此一個簡單的抓取任務,就建立完成可以開始工作了,但是以上的配置使用的都是heritrix的默認提供的實例來完成的,針對每個垂直搜索引擎,對數(shù)據(jù)的抓取,都有特定的約束需求,那么就需要定制自己的實例來完成抓取任務,下面我們進入heritrix的開發(fā)階段,定制自己的web爬蟲。

    第三節(jié) :開發(fā),定制自己的web爬蟲

          
       本人的word的文檔暫時寫到這里,明天繼續(xù)補充。
    posted on 2009-06-26 02:35 鄧兵野 閱讀(3885) 評論(2)  編輯  收藏

    FeedBack:
    # re: 基于lucence+heritrix的開源搜索引擎構建(一)
    2009-06-30 22:10 | hongyejie@tom.com
    能幫個忙么?我有段JAVA編寫的爬蟲程序,是老師布置的,讓我們注釋,實在太難了,我不會!你能幫我注釋一下嗎!?
    姓名是我的郵箱,希望你能給我郵件!!謝謝!  回復  更多評論
      
    # re: 基于lucence+heritrix的開源搜索引擎構建(一)[未登錄]
    2009-07-16 17:24 | google
    500塊錢,我?guī)湍銓懀还?nbsp; 回復  更多評論
      

    只有注冊用戶登錄后才能發(fā)表評論。


    網站導航:
     

    <2009年6月>
    31123456
    78910111213
    14151617181920
    21222324252627
    2829301234
    567891011

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 中文字幕亚洲天堂| 国内精品免费麻豆网站91麻豆| 热久久精品免费视频| 亚洲一区精品视频在线| 18禁成人网站免费观看| 亚洲网站免费观看| 免费观看无遮挡www的小视频| 亚洲综合久久成人69| 99久热只有精品视频免费看| 亚洲视频免费在线看| 亚洲免费在线视频观看| 亚洲一区二区三区91| 成人免费毛片视频| 国产精品亚洲二区在线| 亚洲?V乱码久久精品蜜桃| 精品97国产免费人成视频| 久久精品视频亚洲| h视频在线观看免费完整版| 久久夜色精品国产噜噜亚洲a| 日韩一级视频免费观看| 黄色a三级免费看| 亚洲av中文无码乱人伦在线播放 | 亚洲国产精品无码中文lv| 四虎永久在线精品免费观看地址| 亚洲免费日韩无码系列| 亚洲成AV人片在线观看无码| 亚洲大片免费观看| 亚洲综合一区无码精品| 亚洲AV网站在线观看| 永久免费A∨片在线观看| 亚洲a∨无码男人的天堂| 亚洲成A∨人片天堂网无码| 成人黄网站片免费视频| 亚洲最大无码中文字幕| 日日噜噜噜噜夜夜爽亚洲精品| 亚洲精品免费在线观看| 亚洲精品成a人在线观看夫| 国产亚洲精品无码专区| 免费观看激色视频网站bd| 老司机午夜在线视频免费观| 亚洲激情在线观看|