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

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

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

    隨筆-26  評論-111  文章-19  trackbacks-0
    snoics-reptile?網頁爬蟲2.0

    作者: 施偉
    EMail: snoics@hotmail.com
    主頁: http://m.tkk7.com/snoics


    FAQ


    1、snoics-reptile是什么?

    ????是用純Java開發的,用來進行網站鏡像抓取的工具,可以使用
    配制文件中提供的URL入口,把這個網站所有的能用瀏覽器通過
    GET的方式獲取到的資源全部抓取到本地,包括網頁和各種類型
    的文件,如:圖片、flash、mp3、zip、rar、exe等文件。可以將整
    個網站完整地下傳至硬盤內,并能保持原有的網站結構精確不變。
    只需要把抓取下來的網站放到web服務器(如:Apache)中,就可以
    實現完整的網站鏡像。

    2、現在已經有了其他的類似的軟件,為什么還要開發snoics-reptile?

    ????因為有些在抓取的過程中經常會出現錯誤的文件,而且對很多使用
    javascript控制的URL沒有辦法正確的解析,而snoics-reptile通過對外提供
    接口和配置文件的形式,對特殊的URL,可以通過自由的擴展對外提供
    的接口,并通過配置文件注入的方式,基本上能實現對所有的網頁都
    正確的解析和抓取。

    3、如何使用?

    ????a、配置 bin\snoics-configpath.xml 文件

    ????????將配置文件中的path節點的值改為conf文件夾在系統中的絕對路徑,
    ????????如: c:\snoics-reptile\conf

    ????b、配置 conf\snoics-systemconfig.xml 文件

    ????????其中parameters節點中的配置為對需要抓取的網站的參數的配置,

    ????????以下是各個參數的說明:

    ????????1、websitename:

    ????????站點的名稱(不能為空,由字母和數字組成)

    ????????2、charsetName:

    ????????該站點使用的字符集類型

    ????????3、website:

    ????????將被抓取的站點的域名

    ????????4、startpage:

    ????????抓取的起始頁面

    ????????5、url:

    ????????該站點中將被抓取的部分(如果留空則為整個站點,可以有多個URL,
    ???????? 每個URL之間使用";"隔開)

    ????????6、remoteurlflag:

    ????????代表遠程URL的標志,沒有特殊情況請不要修改此處,使用默認值
    (多個之間使用";"隔開)

    ????????7、forbidurl:

    ????????該站點中不被抓取的部分(多個之間使用";"隔開)

    ????????8、cachefile:

    ????????該站點使用的緩存文件,如果緩存文件不存在則自動創建一個新的,
    如果已經存在,則會載入文件中保存的信息

    ????????9、filerootpath:

    ????????抓取下的文件的保存路徑(必須是系統中的絕對路徑)

    ????????10、indexpage:

    ????????將被保存成index.html文件名的URL類型(多個之間使用";"隔開)

    ????????11、filenamelength:

    ????????頁面保存到本地時,隨機生成的文件名的長度

    ????????12、cacheunitsize:

    ????????一個cache單元的大小

    ????????13、reptile-downloadfiletype:

    ????????將被抓取到本地的文件類型(多個之間使用";"隔開)

    ????????14、reptile-undownloadfiletype:

    ????????頁面被保存到本地時,該種類型的文件的URL將被改成遠程的URL
    地址,如果這種類型出現在reptile-downloadfiletype中時,則文件將被抓取
    到本地,而URL也將改成本地的URL(多個之間使用";"隔開)

    ????c、在參數配置好之后,執行bin/run.bat文件

    4、如何擴展接口?

    ????擴展接口使用的配置文件是:conf/snoics-reptile-urlregex.xml

    ????首先加入一段如下的配置,其中正則表達式部分應該特定的需要自己給出,
    ??? reptile-replace-string用來代替URL出現的位置,在程序執行的過程中,該部分
    ??? 會被自動替換。
    ????<bean id="ahrefRegexUrl" class="com.snoics.reptile.regex.url.impl.UrlRegex" singleton="false">
    ????????<property name="regexUrl">
    ????????????<!-- 提取可能包含URL的字符串 -->
    ????????????<value><![CDATA[<[^!<>]*\shref\s*=\s*["']?[^<>]*["'\s][^<>]*>]]></value>
    ????????</property>
    ????????<property name="replaceRegexUrl">
    ????????????<!-- 替換可能包含URL的字符串 -->
    ????????????<value><![CDATA[<[^!<>]*\shref\s*=\s*["']?reptile-replace-string["'\s][^<>]*>]]></value>
    ????????</property>
    ????????<property name="getRegexUrl">
    ????????????<!-- 提取最終URL -->
    ????????????<ref bean="ahrefGetRegexUrl"/>
    ????????</property>
    ????</bean>
    ????

    ????其中ahrefGetRegexUrl是實現了com.snoics.reptile.regex.url.IGetUrlRegex
    ??? 接口的類,用來從可能包含了URL的字符串里面提取其中包含的URL?

    ??? 其次加入如下的配置:

    ???? <bean id="ahrefGetRegexUrl" class="com.snoics.reptile.regex.url.impl.AhrefGetRegexUrl" singleton="false">
    ???????? <property name="regexString">
    ????????????? <!-- 提取最終URL -->
    ?????????????? <value><![CDATA[href\s*=\s*["']?[^\s"]+["'\s]\s*]]></value>
    ???????? </property>
    ???????? <property name="unIncludeRegexString">
    ??????????????? <!--
    ???????????????????? 排除不需要的類型
    ???????????????????? 多個正則表達式之間使用';'隔開
    ???????????????? ?-->
    ??????????????? ?<value><![CDATA[javascript\s?:\s?;mailto\s?:\s?;^#$;]]></value>
    ?????????? </property>
    ????? </bean>

    ????最后,在如下的配置中,加入剛才配置好的部分

    ????<bean id="urlRegexMap" class="com.snoics.reptile.regex.url.impl.UrlRegexMap">
    ????????<property name="ulrRegexMap">
    ????????????<map>
    ????????????????<!-- 名稱 -->
    ????????????????<entry key="ahref">
    ????????????????????<!-- 解析URL使用的類 -->
    ????????????????????<ref bean="ahrefRegexUrl"/>
    ????????????????</entry>
    ????????????????<entry key="src">
    ????????????????????<ref bean="srcRegexUrl"/>
    ????????????????</entry>
    ????????????</map>
    ????????</property>
    ????</bean>


    5、版本歷史

    2.0:

    核心代碼全部重寫,增加了擴展性,通過擴展之后,基本上能實現對整個網站完整的解析

    1.0:

    實現了整站抓取的基本的功能,不能解析特殊的URL,對javascript無法辨認


    下載地址:

    snoics-reptile2.0.part1.rar

    snoics-reptile2.0.part2.rar

    snoics-reptile2.0-doc.rar?????
    posted on 2006-05-29 21:41 snoics 閱讀(2810) 評論(3)  編輯  收藏

    評論:
    # re: snoics-reptile 網頁爬蟲2.0 2006-05-30 09:56 | 海納百川
    好,真有創意!  回復  更多評論
      
    # re: snoics-reptile 網頁爬蟲2.0 2006-06-06 23:04 | abcjava
    恩,不錯,學習下.  回復  更多評論
      
    # re: snoics-reptile 網頁爬蟲2.0 2006-09-19 17:01 | 張天順
    哥哥,調試了好幾次都不成功!!!!!
    G:\snoics-reptile2.0\bin>java -classpath ../lib/reptile.jar;../lib/com.jar;../li
    b/log4j-1.2.9.jar;../lib/commons-logging.jar;../lib/spring.jar; com.snoics.repti
    le.main.NormalMain
    Exception in thread "main" java.lang.NoClassDefFoundError: com/snoics/reptile/ma
    in/NormalMain


    msn:zhangts8888@hotmail.com

    請你指導一下!!!!!!!!!!!!  回復  更多評論
      

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


    網站導航:
     
    主站蜘蛛池模板: 成人免费无码精品国产电影| 波多野结衣免费一区视频 | 女性自慰aⅴ片高清免费| 亚洲精品美女久久久久9999| 91香蕉国产线观看免费全集| 亚洲婷婷天堂在线综合| 免费A级毛片无码免费视| 亚洲精品久久久久无码AV片软件| 日本成人免费在线| 污网站免费在线观看| 亚洲国产91精品无码专区| 一级毛片一级毛片免费毛片 | 1000部啪啪毛片免费看| 久久精品国产亚洲AV无码麻豆| 中文字幕在线免费观看| 亚洲AV无码乱码在线观看代蜜桃| 女人18毛片特级一级免费视频| 亚洲1区2区3区精华液| 久久久久亚洲?V成人无码| 久久免费精彩视频| 久久久久精品国产亚洲AV无码| 成人免费淫片在线费观看| 黄色一级毛片免费| 亚洲天堂在线播放| 日本一区二区三区日本免费| 九九免费久久这里有精品23| 午夜亚洲www湿好大| 女人18毛片a级毛片免费| 九九免费观看全部免费视频| 久久久久亚洲AV无码网站| 日韩免费毛片视频| 久久er国产精品免费观看2| 2017亚洲男人天堂一| 亚洲黄片毛片在线观看| 无码免费一区二区三区免费播放 | 91嫩草亚洲精品| 免费又黄又爽又猛的毛片| 国产成人免费AV在线播放| 亚洲一区二区三区写真| 亚洲中文字幕无码中文字在线| 国产成人精品免费视频大|