<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
    源代碼發(fā)布

    snoics-reptile?網(wǎng)頁爬蟲2.0?
    作者: 施偉
    EMail: snoics@hotmail.com
    主頁: http://m.tkk7.com/snoics


    FAQ


    1、snoics-reptile是什么?

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

    2、現(xiàn)在已經(jīng)有了其他的類似的軟件,為什么還要開發(fā)snoics-reptile?

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

    3、如何使用?

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

    ????????將配置文件中的path節(jié)點(diǎn)的值改為conf文件夾在系統(tǒng)中的絕對路徑,
    ????????如: c:\snoics-reptile\conf

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

    ????????其中parameters節(jié)點(diǎn)中的配置為對需要抓取的網(wǎng)站的參數(shù)的配置,

    ????????以下是各個參數(shù)的說明:

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

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

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

    ????????該站點(diǎn)使用的字符集類型

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

    ????????將被抓取的站點(diǎn)的域名

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

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

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

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

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

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

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

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

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

    ????????該站點(diǎn)使用的緩存文件,如果緩存文件不存在則自動創(chuàng)建一個新的,
    如果已經(jīng)存在,則會載入文件中保存的信息

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

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

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

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

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

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

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

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

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

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

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

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

    ????c、在參數(shù)配置好之后,執(zhí)行bin/run.bat文件

    4、如何擴(kuò)展接口?

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

    ????首先加入一段如下的配置
    ????<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是實(shí)現(xiàn)了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">
    ??????????????? <!--
    ???????????????????? 排除不需要的類型
    ???????????????????? 多個正則表達(dá)式之間使用';'隔開
    ???????????????? ?-->
    ??????????????? ?<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:

    核心代碼全部重寫,增加了擴(kuò)展性,通過擴(kuò)展之后,基本上能實(shí)現(xiàn)對整個網(wǎng)站完整的解析

    1.0:

    實(shí)現(xiàn)了整站抓取的基本的功能,不能解析特殊的URL,對javascript無法辨認(rèn)

    源代碼下載地址:

    snoics-reptile2.0-src.part1.rar
    snoics-reptile2.0-src.part2.rar
    snoics-reptile2.0-src.part3.rar
    snoics-reptile2.0-src.part4.rar
    posted on 2006-06-03 10:53 snoics 閱讀(4544) 評論(13)  編輯  收藏

    評論:
    # re: 源代碼發(fā)布 snoics-reptile 網(wǎng)頁爬蟲2.0 2006-06-03 13:53 | colderboy
    不錯,學(xué)習(xí)學(xué)習(xí)  回復(fù)  更多評論
      
    # re: 源代碼發(fā)布 snoics-reptile 網(wǎng)頁爬蟲2.0 2006-06-09 09:55 | jimchen
    不錯,我們正好要從網(wǎng)絡(luò)抓數(shù)據(jù),不過要求用C#寫,可以參考參考你程序的一些設(shè)計和處理方法。

    多謝了。  回復(fù)  更多評論
      
    # re: 源代碼發(fā)布 snoics-reptile 網(wǎng)頁爬蟲2.0 2006-07-17 10:22 | roc
    您好
    您的程序可以處理URL redirect 的情況嗎 例如處理java.doworks.cn這樣的情況  回復(fù)  更多評論
      
    # re: 源代碼發(fā)布 snoics-reptile 網(wǎng)頁爬蟲2.0 2006-07-22 09:36 | snoics
    @roc
    可以的,只需要把website配置成java.doworks.cn就行  回復(fù)  更多評論
      
    # re: 源代碼發(fā)布 snoics-reptile 網(wǎng)頁爬蟲2.0 2006-07-29 21:36 | 李李
    挺好的,提個建議
    unIncludeRegexString
    可以改為
    excludeRegexString  回復(fù)  更多評論
      
    # re: 源代碼發(fā)布 snoics-reptile 網(wǎng)頁爬蟲2.0 2006-08-19 10:13 | 小梁
    給個snoics-systemconfig.xml的列子,行不``配置了半天,不能運(yùn)行  回復(fù)  更多評論
      
    # re: 源代碼發(fā)布 snoics-reptile 網(wǎng)頁爬蟲2.0 [未登錄] 2007-12-09 00:25 | king
    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


    同樣的錯誤  回復(fù)  更多評論
      
    # re: 源代碼發(fā)布 snoics-reptile 網(wǎng)頁爬蟲2.0 2008-07-07 01:10 | fgfd
    請問能不能出套教程。  回復(fù)  更多評論
      
    # re: 源代碼發(fā)布 snoics-reptile 網(wǎng)頁爬蟲2.0 2009-04-17 17:02 | strawbingo
    牛人  回復(fù)  更多評論
      
    # re: 源代碼發(fā)布 snoics-reptile 網(wǎng)頁爬蟲2.0 [未登錄] 2010-11-08 16:54 | 楊帆
    非常感謝!!!thanks!  回復(fù)  更多評論
      
    # re: 源代碼發(fā)布 snoics-reptile 網(wǎng)頁爬蟲2.0 [未登錄] 2012-11-29 15:07 | zw
    能把snoics.jar的源碼發(fā)一下嗎?謝謝
    rainbow_zhaow@163.com  回復(fù)  更多評論
      
    # re: 源代碼發(fā)布 snoics-reptile 網(wǎng)頁爬蟲2.0 2013-07-18 11:06 | 于培峰
    給個 snoics-reptile 網(wǎng)頁爬蟲2.0 的源碼吧,發(fā)到郵箱972249551@qq.com,很急用啊,萬分感激  回復(fù)  更多評論
      

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


    網(wǎng)站導(dǎo)航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 成人免费视频国产| 最近中文字幕免费2019| 日韩免费观看视频| 亚洲日韩AV无码一区二区三区人| 成人在线免费看片| 亚洲无吗在线视频| 成人免费无码大片A毛片抽搐| 日本亚洲免费无线码| 国产三级在线观看免费| 亚洲自偷自偷在线成人网站传媒| 在线观看无码AV网站永久免费 | 100000免费啪啪18免进| 亚洲第一页在线播放| 久久精品免费全国观看国产| 天天爽亚洲中文字幕| 国产无遮挡色视频免费视频 | 九九免费观看全部免费视频| 亚洲国产成人VA在线观看| 男女一边桶一边摸一边脱视频免费 | 亚洲欧洲成人精品香蕉网| 很黄很污的网站免费| 亚洲欧洲日韩国产| 香蕉视频在线观看免费国产婷婷| 香蕉视频亚洲一级| 亚洲一级Av无码毛片久久精品| 曰批全过程免费视频在线观看无码| 亚洲国产精品久久久久网站| 日韩精品内射视频免费观看| 亚洲一区二区三区精品视频| 国产免费私拍一区二区三区| 香蕉免费在线视频| 久久精品国产亚洲AV高清热| 免费人成视频在线| 欧亚一级毛片免费看| 亚洲AV无码成人精品区蜜桃| 在人线av无码免费高潮喷水| 乱人伦中文视频在线观看免费| 91久久亚洲国产成人精品性色| 天堂在线免费观看中文版| 成av免费大片黄在线观看| 亚洲制服丝袜在线播放|