freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java網(wǎng)絡(luò)爬蟲(chóng)實(shí)例重點(diǎn)文檔(存儲(chǔ)版)

  

【正文】 T = hasF = hasR = hasA = false。amp。E39。amp。amp。 else hasLT = hasF = hasR = hasA = hasM = hasE = false。amp。 beg = loc。 try{ //found a !hasF){ hasLT = hasA = hasSp = false。 } if(beg==1)throw new Exception(while parsing +()+, bad frame, missing \39。 if((beg)==39。)break。 if(beg=end){//missing quotes... just take the first token after src= beg++){} amp。 (while parsing +()+, bad frame: +s)。 if((javascript:)||(Javascript:))return。 }catch(Exception e1){} try{ URL cp = new URL(()+/)。 int beg=(href)。 int start = beg。)break。end()。beg() amp。end() amp。)。 return。 private String getTitle(String s){ try{ int end=(/title)。} * gets the text of a web page, times out after 10s (true)。 URL site。 amp。amp。amp。 (bad content type +type+ at site +site)。 while(true){ data = ()。 }catch(Exception e){s=null。 public class spidergui extends Frame{ s=spi。 } public void paint(Graphics g){ (g)。 (new Font(arial, , 18))。 (()30, ()), 50, 50)。 if(()65)( } for(int i=0。i10 amp。i10 amp。 while(()){ repaint()。 int time=0。 } else (unrecognized switch: +args[i]+, continuing)。 先請(qǐng)看程序運(yùn)行的過(guò)程:D:\javajavac (編譯)D:\javajava import .*。 String startUrl。 public SearchCrawler(String startUrl,int maxUrl,String searchString){ =searchString。 URL verifiedUrl = null。//獲取給出RUL的主機(jī) String line。 // 檢查是否有注釋。 i++) { String disallow = (i)。 while ((line = ()) != null) { } private String removeWwwFromUrl(String url) { Pattern p= // 從URL中去掉 String line。 // Read page into buffer. for (int i = 0。 } int mentIndex = ()。 // 讀robot文件,創(chuàng)建不允許訪(fǎng)問(wèn)的路徑列表。 ArrayList String disallowList =(host)。 } //搜索到的結(jié)果 , *規(guī)定站點(diǎn)上的哪些頁(yè)面是限制搜索的。 這個(gè)程序的原型來(lái)自《java編程藝術(shù)》, 為了更好的分析,站長(zhǎng)去掉了其中的GUI部分。 (Use init=site switch to set, or help for more info.)。 } default \\ (matches all URLs))。 ( : to limit to N sites, default 5)。 String site=。 } (errColor)。 else (txt, 400, 100+13*i)。 (()18, ()), 20, 100+13*i)。 (o=())!=null。 (Errors:, 100, 420)。 ((()), 350, 80)。 . . . + Object o。 hide()。 topColor = new Color(40, 40, 100)。 private Color numColor。} } String ret=new String()。 public urlReader(URL u){ site = u。 class urlReader implements Runnable{ } return ret。 { urlReader u = new urlReader(site)。 /* return (beg,end)。 */ } return。 if((news:)||(Javascript:))return。 ((beg)!=39。 } int end=beg+1。\39。=\39。 addSite(new URL(cp, linkto))。 }catch(Exception e2){} try{ String linkto=(beg,end)。 if(beg=end){ 39。 39。 if((beg)==(end))break。 if((beg)==39。beg++){ //doesn39。 (while parsing +()+, error parsing link: +())。 hasSp amp。 (malformed frame at +())。amp。amp。\n39。amp。amp。e39。amp。M39。amp。A39。amp。r39。 else hasLT = hasA = false。amp。 else hasLT=false。 || c==39。 //search for a 39。 for(loc=0。 } int loc, beg。 String title=getTitle(source)。 } } public void doNextSite(){ URL current = getNextSite()。 * returns the next site, works like enumeration, will return new values each time * true if there are pending urls and the maximum hasn39。 } p = badEndings3。.39。 public void addSite(URL toadd){ if(null!=())toadd = stripRef(toadd)。 private URL stripRef(URL u){ try{ /* public spider(String starturl, int max, String b){ TIMEOUT = 5000。 String []badEndings3 = {pdf, txt, zip, jpg, mpg, gif, mov, tut, req, abs, swf, tex, dvi, bin, exe, rpm}。 if(!((linkedlist)((i))).isEmpty()){ ret+=\n。 } table = new Vector()。 Object ret = ().getData()。} public void insert(Object o){insert(o, true)。 (nn)。 if(tail==null){ (nn)。 return ret。} public void reset(){ stop=false。 return ret。 } } public boolean contains(Object o){ for(node n = head。 node tail。 } public String toString(){ if(next!=null)return () + \n+ ()。 import .*。被列入該隊(duì)列的URL將不再會(huì)被Spider程序處理。一種方法就是基于內(nèi)存的隊(duì)列管理。 非遞歸程序不調(diào)用自身,而是采用隊(duì)列的方法。在此,調(diào)用RecursiveSiper?方法來(lái)訪(fǎng)問(wèn)URL.。只要等待隊(duì)列中有一個(gè)網(wǎng)頁(yè)或Spider程序正在處理一個(gè)網(wǎng)頁(yè),Spider程序就會(huì)繼續(xù)它的工作。這此詞往往不能明確表達(dá)該網(wǎng)頁(yè)信息,所以有些搜索引擎保存一個(gè) 無(wú)用詞匯表,在建立索引時(shí)將不對(duì)這些詞匯建立索引。 由于漢文字符多,處理復(fù)雜,中文詞的處理不容易。 內(nèi)容索引項(xiàng):是用來(lái)反映文檔內(nèi)容的,如關(guān)鍵詞及其權(quán)重、短語(yǔ)、詞、字等等。當(dāng)然在服務(wù)器上所開(kāi)的線(xiàn)程也不能無(wú)限膨脹,需要在服務(wù)器的正常運(yùn)轉(zhuǎn)和快速 收集網(wǎng)頁(yè)之間找一個(gè)平衡點(diǎn)。一個(gè)典型的網(wǎng)絡(luò)蜘蛛工作的方式:查看一個(gè)頁(yè)面, 并從中找到相關(guān)信息,然后它再?gòu)脑擁?yè)面的所有鏈接中出發(fā),繼續(xù)尋找相關(guān)的信息,以此類(lèi)推。由于spi der不能更新過(guò)快(因?yàn)榫W(wǎng)絡(luò)帶寬是有限的,更新過(guò)快就會(huì)影響其他用戶(hù)的正常使用),難免有不能及時(shí)加入的新網(wǎng)站或新頁(yè)面?;?,或者可以根據(jù)頁(yè)而標(biāo)題與當(dāng)前的熱點(diǎn)問(wèn)題是否相近或相關(guān)來(lái)評(píng)定其頁(yè)面的重要性。Spider程序?qū)π耈RL 的選擇往往與搜索引擎的類(lèi)型、目標(biāo)集合、能夠處理信息的類(lèi)型、資源的限制和是否支持Robots限制協(xié)議有關(guān)?! ∷阉饕娴母轮芷趯?duì)搜索引擎搜索的查全率有很大影響。這些類(lèi)型的網(wǎng)頁(yè)對(duì)于網(wǎng)絡(luò)蜘蛛來(lái)說(shuō),可能還稍微容易一些。 這就需要網(wǎng)絡(luò)蜘蛛的設(shè)計(jì)有一定的擴(kuò)展性?! ?duì)于doc、pdf等文檔,這種由專(zhuān)業(yè)廠商提供的軟件生成的文檔,廠商都會(huì)提供相應(yīng)的文本提取接口。例如:表示本網(wǎng)頁(yè)不需要被抓取,但是網(wǎng)頁(yè)內(nèi)的鏈接需要被跟蹤。如果在網(wǎng)站上有訪(fǎng)問(wèn)日志記錄,網(wǎng)站管理員就能知道,哪些搜索引擎的網(wǎng)絡(luò)蜘蛛過(guò)來(lái)過(guò),什么時(shí)候過(guò)來(lái)的,以及讀了多少數(shù)據(jù)等等。而當(dāng)搜索者點(diǎn)擊查看該網(wǎng)頁(yè)的時(shí)候,同樣需要搜索者提供相應(yīng) 的權(quán)限驗(yàn)證?! ∮捎诓豢赡茏ト∷械木W(wǎng)頁(yè),有些網(wǎng)絡(luò)蜘蛛對(duì)一些不太重要的網(wǎng)站,設(shè)置了訪(fǎng)問(wèn)的層數(shù)。  在抓取網(wǎng)頁(yè)的時(shí)候,網(wǎng)絡(luò)蜘蛛一般有兩種策略:廣度優(yōu)先和深度優(yōu)先。網(wǎng)絡(luò)蜘蛛即Web Spider,是一個(gè)很形象的名字。因此,許多搜索 引擎的網(wǎng)絡(luò)蜘蛛只是抓取那些重要的網(wǎng)頁(yè),而在抓取的時(shí)候評(píng)價(jià)重要性主要的依據(jù)是某個(gè)網(wǎng)頁(yè)的鏈接深度。兩種策略的區(qū)別,下圖的說(shuō)明會(huì)更加明確。網(wǎng)絡(luò)蜘蛛可以通過(guò)所給的權(quán)限對(duì)這些網(wǎng)頁(yè)進(jìn)行網(wǎng)頁(yè)抓取,從而提供搜索。例如Google網(wǎng)絡(luò)蜘蛛的標(biāo)識(shí)為GoogleBot,Baidu網(wǎng)絡(luò)蜘蛛的標(biāo)識(shí)為BaiDuSpider, Yahoo網(wǎng)絡(luò)蜘蛛的標(biāo)識(shí)為Inktomi Slurp。通過(guò)這些標(biāo)識(shí),可以告訴網(wǎng)絡(luò)蜘蛛本網(wǎng)頁(yè)是否需要被抓取,還可以告訴網(wǎng)絡(luò)蜘蛛本網(wǎng)頁(yè)中的鏈接是否需要被繼續(xù)跟蹤。準(zhǔn)確提取這些文檔的信息,一方面對(duì)搜索引擎的搜索準(zhǔn)確性有重要作用,另 一方面對(duì)于網(wǎng)絡(luò)蜘蛛正確跟蹤其它鏈接有一定影響。過(guò)濾這些無(wú)效鏈接需要統(tǒng)計(jì)大量的網(wǎng)頁(yè)結(jié)構(gòu)規(guī)律,抽取一些共性,統(tǒng)一過(guò)濾;對(duì)于一些重要而結(jié)果特殊的網(wǎng)站,還需要個(gè)別處理。由于開(kāi)發(fā)語(yǔ)言不斷的增多,動(dòng)態(tài)網(wǎng)頁(yè)的類(lèi)型也越來(lái)越多,如:asp、jsp、php 等?! 「轮芷凇 ∮捎诰W(wǎng)站的內(nèi)容經(jīng)常在變化,因此網(wǎng)絡(luò)蜘蛛也需不斷的更新其抓取網(wǎng)頁(yè)的內(nèi)容,這就需要網(wǎng)絡(luò)蜘蛛按照一定的周期去掃描網(wǎng)站,查看哪些頁(yè)面是需要更新的頁(yè)面,哪些頁(yè)面是新增頁(yè)面,哪些頁(yè)面是已經(jīng)過(guò)期的死鏈接。 Spider的實(shí)現(xiàn)細(xì)節(jié)a. URL 的組織和管理考慮到系統(tǒng)自身的資源和時(shí)間有限,Spider程序應(yīng)盡可能的對(duì)鏈接進(jìn)行篩選,以保證獲取信息的質(zhì)量和效率。n”就較為重要一些。c. Spider實(shí)現(xiàn)中的主要問(wèn)題 雖然Spider的功能很強(qiáng),但也存在不少的問(wèn)題:(1)如果一組URL地址沒(méi)有被組外URL所鏈接到,那么Spider就找不到它們。Spider構(gòu)架發(fā)現(xiàn)、搜集網(wǎng)頁(yè)信息需要有高性能的“網(wǎng)絡(luò)蜘蛛”程序〔Spider〕去自動(dòng)地在互聯(lián)網(wǎng)中搜索信息。通過(guò)搶先式多線(xiàn)程的使用,你能索引一個(gè)基于URL鏈接的 Web頁(yè)面,啟動(dòng)一個(gè)新的線(xiàn)程跟隨每個(gè)新的URL鏈接,索引一個(gè)新的URL起點(diǎn)。索引項(xiàng)有客觀索引項(xiàng)和內(nèi)容索引項(xiàng)兩種: 客觀項(xiàng):與文檔的語(yǔ)意內(nèi)容無(wú)關(guān),如作者名、URL、更新時(shí)間、編碼、長(zhǎng)度、鏈接流行度(Link Popularity)等等。一個(gè)搜索引擎的有效性 在很大程度取決于索引的
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1