搜索引擎基本原理及實現技術_第1頁
搜索引擎基本原理及實現技術_第2頁
搜索引擎基本原理及實現技術_第3頁
搜索引擎基本原理及實現技術_第4頁
搜索引擎基本原理及實現技術_第5頁
已閱讀5頁,還剩37頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

演示文稿搜索引擎基本原理及實現技術現在是1頁\一共有42頁\編輯于星期六搜索引擎基本原理及實現技術ppt課件現在是2頁\一共有42頁\編輯于星期六搜索引擎的工作原理通用搜索引擎的架構示意圖現在是3頁\一共有42頁\編輯于星期六通用的網絡爬蟲的框架現在是4頁\一共有42頁\編輯于星期六爬蟲技術總體介紹:

(一)網絡爬蟲是一個自動提取網頁的程序,它為搜索引擎從Internet網上下載網頁,是搜索引擎的重要組成。 網絡爬蟲使用多線程技術,讓爬蟲具備更強大的抓取能力。

網絡爬蟲還要完成信息提取任務,對于抓取回來的網頁提取出來:新聞、電子圖書、行業信息等。對于MP3、圖片、Flash等各種不同內容,要實現自動識別、自動分類及相關屬性測試(例如:MP3文件要包含的文件大小,下載速度等屬性)。現在是5頁\一共有42頁\編輯于星期六(二)抓取對象:

1.靜態網頁:爬蟲從一個或若干初始網頁的URL開始,獲得初始網頁上的URL,在抓取網頁的過程中,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統的一定停止條件。

2.動態網頁:分析動態網頁參數,按照一定規章,“拼”出所有要被抓取內容URL,只抓取這些特定范圍內動態網頁。

3.特殊內容:比如RSS、XML數據,情況特殊需特殊處理。如新聞的滾動新聞頁面,需要爬蟲不停地監控掃描,發現新內容馬上就進行抓取。

4.文件對象:圖片,MP3、Flash、視頻等文件的抓取,都要特殊處理。比如說:圖片抓取出來后,要知道圖片文件類型、圖片文件的大小、圖片的像素大小,還要轉換出來縮略圖。現在是6頁\一共有42頁\編輯于星期六爬蟲分類批量型爬蟲有明確的抓取范圍和目標,當達到這個設定的目標后,即停止抓取過程。增量型爬蟲(商業搜索引擎屬于此類)持續不斷的抓取,對抓到的網頁定期更新垂直型爬蟲僅關注特定主題內容或者屬于特定行業的網頁,難點是如何識別網頁是否屬于指定范疇。現在是7頁\一共有42頁\編輯于星期六優秀爬蟲的特性高性能URL隊列的存儲方式會影響性能可擴展性多臺服務器多線程抓取,不同區域部署數據中心,將爬蟲分配到不同的數據中心健壯性再次啟動時能恢復之前抓取的內容和數據結構友好性爬蟲禁抓協議和網頁禁抓標記現在是8頁\一共有42頁\編輯于星期六禁止爬蟲的幾種情況User-agent:GoogleBotDisallow:/tmp/Disallow:/cgi-bin/Disallow:/users/paranoid/<metaname=“robots”content=“noindex”><metaname=“robots”content=“nofollow”>Robot.txt禁止索引網頁內容禁止抓取網頁鏈接現在是9頁\一共有42頁\編輯于星期六Content標簽對應的具體含義Content組合意義content=“index,follow”允許收錄,允許從頁面中擴展鏈接content=“all”content=“noindex,nofollow”禁止收錄,禁止從頁面中擴展鏈接content=“none”content=“noindex,follow”禁止收錄,允許從頁面中擴展鏈接content=“index,nofollow”允許收錄,禁止從頁面中擴展鏈接現在是10頁\一共有42頁\編輯于星期六爬蟲質量的評價標準1、覆蓋率2、抓取網頁的時新性3、抓取網頁的重要性大型商業搜索引擎一般至少包含兩套不同目的爬蟲系統,一套(freshbot)主要考慮網頁的時新性,一套(deepcrawlbot)針對更新不那么頻繁的網頁。現在是11頁\一共有42頁\編輯于星期六網頁抓取策略1、寬(廣)度優先遍歷策略2、深度優先遍歷策略3、非完全pagerank策略4、OPIC策略(OnlinePageImportanceComputation)5、大站優先策略現在是12頁\一共有42頁\編輯于星期六寬(廣)度優先策略將新下載網頁中發現的鏈接直接插入待抓取URL隊列的末尾。也就是指網絡爬蟲會先抓取起始網頁中鏈接的所有網頁,然后再選擇其中的一個鏈接網頁,繼續抓取在此網頁中鏈接的所有網頁。抓取順序:1,2,3,4,5,6,7,8,9現在是13頁\一共有42頁\編輯于星期六深度優先策略

從起始頁開始,一個鏈接一個鏈接跟蹤下去,處理完這條線路之后再轉入下一個起始頁,繼續跟蹤鏈接.抓取順序:1,2,5,6,3,7,4,8,9現在是14頁\一共有42頁\編輯于星期六PageRank簡介

1)在初始階段:網頁通過鏈接關系構建起Web圖,每個頁面設置相同的PageRank值,通過若干輪的計算,會得到每個頁面所獲得的最終PageRank值。隨著每一輪的計算進行,網頁當前的PageRank值會不斷得到更新。

2)在一輪中更新頁面PageRank得分的計算方法:在一輪更新頁面PageRank得分的計算中,每個頁面將其當前的PageRank值平均分配到本頁面包含的出鏈上,這樣每個鏈接即獲得了相應的權值。而每個頁面將所有指向本頁面的入鏈所傳入的權值求和,即可得到新的PageRank得分。當每個頁面都獲得了更新后的PageRank值,就完成了一輪PageRank計算。現在是15頁\一共有42頁\編輯于星期六非完全PageRank策略對于已經下載的網頁,加上待抓取URL隊列中的URL一起,形成網頁集合,在此集合內進行pagerank計算,計算完成后,將待抓取URL隊列里的網頁按照PageRank得分由高到低排序,形成的序列就是爬蟲接下來應該依次抓取的URL列表。每當下載K個的網頁,就將所有下載頁面重新計算一遍其非完全的PageRank值。現在是16頁\一共有42頁\編輯于星期六OPIC策略

OnlinePageImportanceComputation。該算法實際上也是對頁面進行一個重要性打分。在算法開始前,給所有頁面一個相同的初始現金(cash)。當下載了某個頁面P之后,將P的現金分攤給所有從P中分析出的鏈接,并且將P的現金清空。對于待抓取URL隊列中的所有頁面按照現金數進行排序。現在是17頁\一共有42頁\編輯于星期六大站優先策略以網站為單位來衡量網頁重要性,對于待抓取URL隊列中的所有網頁,根據所屬的網站進行分類。對于待下載頁面數多的網站,優先下載。現在是18頁\一共有42頁\編輯于星期六網頁更新策略歷史參考策略用戶體驗策略聚類抽樣策略現在是19頁\一共有42頁\編輯于星期六歷史參考策略假設:過去頻繁更新的網頁,將來更新也會很頻繁。原理:利用泊松過程來對網頁的變化建模,預測下次變化時間。將網頁劃分成不同區域,忽略廣告欄或者導航欄等不重要區域的變化,精力集中在變化的主題內容上。現在是20頁\一共有42頁\編輯于星期六用戶體驗策略假設:用戶往往只查看前3頁的搜索內容。原理:保存網頁的多個歷史版本,根據過去每次內容變化對搜索質量的影響,得出一個平均值,作為判斷爬蟲抓取該網頁時機的參考依據,對質量影響越厲害的網頁,越優先調度重新抓取。現在是21頁\一共有42頁\編輯于星期六聚類抽樣策略前面兩種更新策略都有一個前提:需要網頁的歷史信息。存在兩個問題:1)系統要是為每個系統保存多個版本的歷史信息,增加了很多的系統負擔;2)新的網頁完全沒有歷史信息,無法確定更新策略。

現在是22頁\一共有42頁\編輯于星期六聚類抽樣策略聚類抽樣策略認為,網頁具有很多屬性,類似屬性的網頁,可以認為其更新頻率也是類似的。要計算某一個類別網頁的更新頻率,只需要對這一類網頁抽樣,以他們的更新周期作為整個類別的更新周期。

現在是23頁\一共有42頁\編輯于星期六分布式抓取系統結構

一般來說,抓取系統需要面對的是整個互聯網上數以億計的網頁。單個抓取程序不可能完成這樣的任務。往往需要多個抓取程序一起來處理。一般來說抓取系統往往是一個分布式的三層結構。

最下一層是分布在不同地理位置的數據中心,在每個數據中心里有若干臺抓取服務器,而每臺抓取服務器上可能部署了若干套爬蟲程序。這就構成了一個基本的分布式抓取系統。現在是24頁\一共有42頁\編輯于星期六主從式基本結構有一臺專門的Master服務器來維護待抓取URL隊列,它負責每次將URL分發到不同的Slave服務器,而Slave服務器則負責實際的網頁下載工作。Master服務器除了維護待抓取URL隊列以及分發URL之外,還要負責調解各個Slave服務器的負載情況。以免某些Slave服務器過于清閑或者勞累。

這種模式下,Master往往容易成為系統瓶頸。現在是25頁\一共有42頁\編輯于星期六對等式工作結構所有的抓取服務器在分工上沒有不同。每一臺抓取服務器都可以從待抓取在URL隊列中獲取URL,然后對該URL的主域名的hash值H,然后計算Hmodm(其中m是服務器的數量,以上圖為例,m為3),計算得到的數就是處理該URL的主機編號。弊端:擴展性較差。現在是26頁\一共有42頁\編輯于星期六

一致性哈希將URL的主域名進行哈希運算,映射為一個范圍在0-232之間的某個數。而將這個范圍平均的分配給m臺服務器,根據URL主域名哈希運算的值所處的范圍判斷是哪臺服務器來進行抓取。

如果某一臺服務器出現問題,那么本該由該服務器負責的網頁則按照順時針順延,由下一臺服務器進行抓取。現在是27頁\一共有42頁\編輯于星期六暗網抓取查詢組合問題文本框填寫問題現在是28頁\一共有42頁\編輯于星期六網絡爬蟲的實現現在是29頁\一共有42頁\編輯于星期六鏈接的存儲隊列的數據結構待爬取隊列已爬取隊列失效鏈接錯誤鏈接現在是30頁\一共有42頁\編輯于星期六網頁抓取Jsoup.jar官方網站/相關學習資料/topic/1010581/topic/1010582現在是31頁\一共有42頁\編輯于星期六getElementById(Stringid)用id獲得元素getElementsByTag(Stringtag)用標簽獲得元素getElementsByClass(StringclassName)用class獲得元素getElementsByAttribute(Stringkey)用屬性獲得元素用下面方法獲得元素的數據:attr(Stringkey)獲得元素的數據attr(Stringkey,Stringvalue)t設置元素數據attributes()獲得所以屬性id(),className()classNames()獲得idclass得值text()獲得文本值text(Stringvalue)設置文本值html()獲取htmlhtml(Stringvalue)設置htmlouterHtml()獲得內部html

現在是32頁\一共有42頁\編輯于星期六try

{

doc

=

Jsoup

.connect(urlStr)

.userAgent(

"Mozilla/5.0

(Windows;

U;

Windows

NT

5.1;

zh-CN;

rv:5)")

//

設置User-Agent

.timeout(5000)

//

設置連接超時時間

.get();

}

catch

(MalformedURLException

e)

{

log.error(

e);

return

;

}

catch

(IOException

e)

{

if

(e

instanceof

SocketTimeoutException)

{

log.error(

e);

return

;

}

if(e

instanceof

UnknownHostException){

log.error(e);

return

;

}

log.error(

e);

return

;

}

現在是33頁\一共有42頁\編輯于星期六system.out.println(doc.title());

Element

head

=

doc.head();

Elements

metas

=

head.select("meta");

for

(Element

meta

:

metas)

{

String

content

=

meta.attr("content");

Element

body

=

doc.body();

Elementses=body.select("a");for(Iterator<Element>it=es.iterator();it.hasNext();){Elemente=(Element)it.next();href=e.attr("href");}現在是34頁\一共有42頁\編輯于星期六鏈接提取<a

href="./gljg/gljg.html"><span>機關部處</span></a><a

href="/"

target="_blank"><span>招生就業</span></a><a

href="../hzjl"><span>合作交流</span></a>現在是35頁\一共有42頁\編輯于星期六<iframe

id="ifNews"

scrolling="no"

allowtransparency="true"

frameborder="0"

src="/service/CqutXw"

height="135"></iframe><option

value="/">工業和信息化部</option>現在是36頁\一共有42頁\編輯于星期六提高爬蟲效率多線程抓取優化存儲結構根據不同類型的鏈接分別制定抓取策略現在是37頁\一共有42頁\編輯于星期六實例說明現在是38頁\一共有42頁\編輯于星期六主要步驟1.輸入:種子頁面網址、抓取深度、抓取線程數2.根據初始url獲取種子頁面的內容

注:1)url的合法性(兩種方法) a、判斷url是否符合協議規則 b、判斷url是否可以打開while(counts<=3){try{URLurl=newURL(urlStr);HttpURLConnectioncon=(HttpURLConnection)url.openConnection();intstate=con.getResponseCode();if(state==200){retu="ok";}

現在是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論