国产成人freesex在线_亚洲精品中文字幕在线视频 _久久久久视频综合_十八禁高潮呻吟视频 _999久久久精品免费观看国产_国产男女超爽视频在线观看_成人三级做爰电影_久久久久国产精品人妻一区二区

<strong id="17c32"><button id="17c32"></button></strong>
  • <ins id="17c32"></ins>
      1. <strong id="17c32"></strong>

        搜索引擎原理:網(wǎng)絡(luò)爬蟲

        日期:2020-08-15 18:40:43     閱讀:413     文章來源:本站     標(biāo)簽: 網(wǎng)絡(luò)爬蟲 蜘蛛ip

          通用搜索引擎的處理對象是互聯(lián)網(wǎng)網(wǎng)頁,目前網(wǎng)頁數(shù)量以百億計,搜索引擎的網(wǎng)絡(luò)爬蟲能夠高效地將海量的網(wǎng)頁數(shù)據(jù)傳下載到本地,在本地形成互聯(lián)網(wǎng)網(wǎng)頁的鏡像備份。它是搜索引擎系統(tǒng)中很關(guān)鍵也很基礎(chǔ)的構(gòu)件。

         

          1.網(wǎng)絡(luò)爬蟲本質(zhì)就是瀏覽器http請求。

          瀏覽器和網(wǎng)絡(luò)爬蟲是兩種不同的網(wǎng)絡(luò)客戶端,都以相同的方式來獲取網(wǎng)頁:

          1)首先,客戶端程序連接到域名系統(tǒng)(DNS)服務(wù)器上,DNS服務(wù)器將主機(jī)名轉(zhuǎn)換成ip地址。

          2)接下來,客戶端試著連接具有該IP地址的服務(wù)器。服務(wù)器上可能有多個不同進(jìn)程程序在運(yùn)行,每個進(jìn)程程序都在監(jiān)聽網(wǎng)絡(luò)以發(fā)現(xiàn)新的選接。各個進(jìn)程監(jiān)聽不同的網(wǎng)絡(luò)端口(port).端口是一個l6位的數(shù)卞,用來辨識不同的服務(wù)。Http請求一般默認(rèn)都是80端口。

          3)一旦建立連接,客戶端向服務(wù)器發(fā)送一個http請求,服務(wù)器接收到請求后,返回響應(yīng)結(jié)果給客戶端。

          4)客戶端關(guān)閉該連接。

          詳細(xì)了解http工作原理:網(wǎng)絡(luò)互聯(lián)參考模型(詳解)和Apache運(yùn)行機(jī)制剖析

         

          2.搜索引擎爬蟲架構(gòu)

          但是瀏覽器是用戶主動操作然后完成HTTP請求,而爬蟲需要自動完成http請求,網(wǎng)絡(luò)爬蟲需要一套整體架構(gòu)完成工作。

          盡管爬蟲技術(shù)經(jīng)過幾十年的發(fā)展,從整體框架上已相對成熟,但隨著互聯(lián)網(wǎng)的不斷發(fā)展,也面臨著一些有挑戰(zhàn)性的新問題。通用爬蟲框架如下圖:

         

         搜索引擎通用爬蟲架構(gòu) 

          通用的爬蟲框架流程:

          1)首先從互聯(lián)網(wǎng)頁面中精心選擇一部分網(wǎng)頁,以這些網(wǎng)頁的鏈接地址作為種子URL;

          2)將這些種子URL放入待抓取URL隊列中;

          3)爬蟲從待抓取URL隊列依次讀取,并將URL通過DNS解析,把鏈接地址轉(zhuǎn)換為網(wǎng)站服務(wù)器對應(yīng)的IP地址。

          4)然后將IP地址和網(wǎng)頁相對路徑名稱交給網(wǎng)頁下載器,

          5)網(wǎng)頁下載器負(fù)責(zé)頁面內(nèi)容的下載。

          6)對于下載到本地的網(wǎng)頁,一方面將其存儲到頁面庫中,等待建立索引等后續(xù)處理;另一方面將下載網(wǎng)頁的URL放入己抓取URL隊列中,這個隊列記載了爬蟲系統(tǒng)己經(jīng)下載過的網(wǎng)頁URL,以避免網(wǎng)頁的重復(fù)抓取。

          7)對于剛下載的網(wǎng)頁,從中抽取出所包含的所有鏈接信息,并在已抓取URL隊列中檢査,如果發(fā)現(xiàn)鏈接還沒有被抓取過,則將這個URL放入待抓取URL隊歹!

          8,9)末尾,在之后的抓取調(diào)度中會下載這個URL對應(yīng)的網(wǎng)頁,如此這般,形成循環(huán),直到待抓取URL隊列為空.

         

          3.爬蟲抓取策略

         

          在爬蟲系統(tǒng)中,待抓取URL隊列是很重要的一部分。待抓取URL隊列中的URL以什么樣的順序排列也是一個很重要的問題,因為這涉及到先抓取那個頁面,后抓取哪個頁面。而決定這些URL排列順序的方法,叫做抓取策略。

          3.1深度優(yōu)先搜索策略(順藤摸瓜)

          即圖的深度優(yōu)先遍歷算法。網(wǎng)絡(luò)爬蟲會從起始頁開始,一個鏈接一個鏈接跟蹤下去,處理完這條線路之后再轉(zhuǎn)入下一個起始頁,繼續(xù)跟蹤鏈接。

          我們使用圖的方式來說明:

          我們假設(shè)互聯(lián)網(wǎng)就是張有向圖,圖中每個頂點代表一個網(wǎng)頁。設(shè)初始狀態(tài)是圖中所有頂點未曾被訪問,則深度優(yōu)先搜索可從圖中某個頂點發(fā)v出發(fā),訪問此頂點,然后依次從v的未被訪問的鄰接點出發(fā)深度優(yōu)先遍歷圖,直至圖中所有和v有路徑相通的頂點都被訪問到;若此時圖中尚有頂點未被訪問,則另選圖中一個未曾被訪問的頂點作起始點,重復(fù)上述過程,直至圖中所有頂點都被訪問到為止。

          以如下圖的無向圖G1為例,進(jìn)行圖的深度優(yōu)先搜索:

        搜索引擎深度優(yōu)先策略示意圖

          G1

         

          搜索過程:

        搜索引擎搜索過程

          假設(shè)從頂點頁面v1出發(fā)進(jìn)行搜索抓取,在訪問了頁面v1之后,選擇鄰接點頁面v2。因為v2未曾訪問,則從v2出發(fā)進(jìn)行搜索。依次類推,接著從v4、v8、v5出發(fā)進(jìn)行搜索。在訪問了v5之后,由于v5的鄰接點都已被訪問,則搜索回到v8。由于同樣的理由,搜索繼續(xù)回到v4,v2直至v1,此時由于v1的另一個鄰接點未被訪問,則搜索又從v1到v3,再繼續(xù)進(jìn)行下去由此,得到的頂點訪問序列為:

        V1&rarr;V2&rarr;V3&rarr;V4&rarr;V5&rarr;V6&rarr;V7

          3.2廣度優(yōu)先搜索策略

          寬度優(yōu)先遍歷策略的基本思路是,將新下載網(wǎng)頁中發(fā)現(xiàn)的鏈接直接插入待抓取URL隊列的末尾。也就是指網(wǎng)絡(luò)爬蟲會先抓取起始網(wǎng)頁中鏈接的所有網(wǎng)頁,然后再選擇其中的一個鏈接網(wǎng)頁,繼續(xù)抓取在此網(wǎng)頁中鏈接的所有網(wǎng)頁。該算法的設(shè)計和實現(xiàn)相對簡單。在目前為覆蓋盡可能多的網(wǎng)頁,一般使用廣度優(yōu)先搜索方法。也有很多研究將廣度優(yōu)先搜索策略應(yīng)用于聚焦爬蟲中。其基本思想是認(rèn)為與初始URL在一定鏈接距離內(nèi)的網(wǎng)頁具有主題相關(guān)性的概率很大。另外一種方法是將廣度優(yōu)先搜索與網(wǎng)頁過濾技術(shù)結(jié)合使用,先用廣度優(yōu)先策略抓取網(wǎng)頁,再將其中無關(guān)的網(wǎng)頁過濾掉。這些方法的缺點在于,隨著抓取網(wǎng)頁的增多,大量的無關(guān)網(wǎng)頁將被下載并過濾,算法的效率將變低。

          還是以上面的圖為例,抓取過程如下:

        搜索引擎廣度搜索過程

          廣度搜索過程:

          首先訪問頁面v1和v1的鄰接點v2和v3,然后依次訪問v2的鄰接點v4和v5及v3的鄰接點v6和v7,最后訪問v4的鄰接點v8。由于這些頂點的鄰接點均已被訪問,并且圖中所有頂點都被訪問,由些完成了圖的遍歷。得到的頂點訪問序列為:

          v1&rarr;v2&rarr;v3&rarr;v4&rarr;v5&rarr;v6&rarr;v7&rarr;v8

          和深度優(yōu)先搜索類似,在遍歷的過程中也需要一個訪問標(biāo)志數(shù)組。并且,為了順次訪問路徑長度為2、3、&hellip;的頂點,需附設(shè)隊列以存儲已被訪問的路徑長度為1、2、&hellip;的頂點。

         

          3.2最佳優(yōu)先搜索策略

          最佳優(yōu)先搜索策略按照一定的網(wǎng)頁分析算法,預(yù)測候選URL與目標(biāo)網(wǎng)頁的相似度,或與主題的相關(guān)性,并選取評價最好的一個或幾個URL進(jìn)行抓取。

         

          3.3.反向鏈接數(shù)策略

          反向鏈接數(shù)是指一個網(wǎng)頁被其他網(wǎng)頁鏈接指向的數(shù)量。反向鏈接數(shù)表示的是一個網(wǎng)頁的內(nèi)容受到其他人的推薦的程度。因此,很多時候搜索引擎的抓取系統(tǒng)會使用這個指標(biāo)來評價網(wǎng)頁的重要程度,從而決定不同網(wǎng)頁的抓取先后順序。

          在真實的網(wǎng)絡(luò)環(huán)境中,由于廣告鏈接、作弊鏈接的存在,反向鏈接數(shù)不能完全等他我那個也的重要程度。因此,搜索引擎往往考慮一些可靠的反向鏈接數(shù)。

         

          3.4.PartialPageRank策略,即最佳優(yōu)先搜索策略

          PartialPageRank算法借鑒了PageRank算法的思想:按照一定的網(wǎng)頁分析算法,預(yù)測候選URL與目標(biāo)網(wǎng)頁的相似度,或與主題的相關(guān)性,并選取評價最好的一個或幾個URL進(jìn)行抓取,即對于已經(jīng)下載的網(wǎng)頁,連同待抓取URL隊列中的URL,形成網(wǎng)頁集合,計算每個頁面的PageRank值,計算完之后,將待抓取URL隊列中的URL按照PageRank值的大小排列,并按照該順序抓取頁面。

          它只訪問經(jīng)過網(wǎng)頁分析算法預(yù)測為&ldquo;有用&rdquo;的網(wǎng)頁。存在的一個問題是,在爬蟲抓取路徑上的很多相關(guān)網(wǎng)頁可能被忽略,因為最佳優(yōu)先策略是一種局部最優(yōu)搜索算法。因此需要將最佳優(yōu)先結(jié)合具體的應(yīng)用進(jìn)行改進(jìn),以跳出局部最優(yōu)點。研究表明,這樣的閉環(huán)調(diào)整可以將無關(guān)網(wǎng)頁數(shù)量降低30%~90%。

          如果每次抓取一個頁面,就重新計算PageRank值,一種折中方案是:每抓取K個頁面后,重新計算一次PageRank值。但是這種情況還會有一個問題:對于已經(jīng)下載下來的頁面中分析出的鏈接,也就是我們之前提到的未知網(wǎng)頁那一部分,暫時是沒有PageRank值的。為了解決這個問題,會給這些頁面一個臨時的PageRank值:將這個網(wǎng)頁所有入鏈傳遞進(jìn)來的PageRank值進(jìn)行匯總,這樣就形成了該未知頁面的PageRank值,從而參與排序。

         

          3.5.OPIC策略策略

          該算法實際上也是對頁面進(jìn)行一個重要性打分。在算法開始前,給所有頁面一個相同的初始現(xiàn)金(cash)。當(dāng)下載了某個頁面P之后,將P的現(xiàn)金分?jǐn)偨o所有從P中分析出的鏈接,并且將P的現(xiàn)金清空。對于待抓取URL隊列中的所有頁面按照現(xiàn)金數(shù)進(jìn)行排序。

          3.6.大站優(yōu)先策略

          對于待抓取URL隊列中的所有網(wǎng)頁,根據(jù)所屬的網(wǎng)站進(jìn)行分類。對于待下載頁面數(shù)多的網(wǎng)站,優(yōu)先下載。這個策略也因此叫做大站優(yōu)先策略。

         

          4.網(wǎng)頁更新策略

         

          互聯(lián)網(wǎng)是實時變化的,具有很強(qiáng)的動態(tài)性。網(wǎng)頁更新策略主要是決定何時更新之前已經(jīng)下載過的頁面。常見的更新策略又以下三種:

          1.歷史參考策略

          顧名思義,根據(jù)頁面以往的歷史更新數(shù)據(jù),預(yù)測該頁面未來何時會發(fā)生變化。一般來說,是通過泊松過程進(jìn)行建模進(jìn)行預(yù)測。

         

          2.用戶體驗策略

          盡管搜索引擎針對于某個查詢條件能夠返回數(shù)量巨大的結(jié)果,但是用戶往往只關(guān)注前幾頁結(jié)果。因此,抓取系統(tǒng)可以優(yōu)先更新那些現(xiàn)實在查詢結(jié)果前幾頁中的網(wǎng)頁,而后再更新那些后面的網(wǎng)頁。這種更新策略也是需要用到歷史信息的。用戶體驗策略保留網(wǎng)頁的多個歷史版本,并且根據(jù)過去每次內(nèi)容變化對搜索質(zhì)量的影響,得出一個平均值,用這個值作為決定何時重新抓取的依據(jù)。

         

          3.聚類抽樣策略

          前面提到的兩種更新策略都有一個前提:需要網(wǎng)頁的歷史信息。這樣就存在兩個問題:第一,系統(tǒng)要是為每個系統(tǒng)保存多個版本的歷史信息,無疑增加了很多的系統(tǒng)負(fù)擔(dān);第二,要是新的網(wǎng)頁完全沒有歷史信息,就無法確定更新策略。

          這種策略認(rèn)為,網(wǎng)頁具有很多屬性,類似屬性的網(wǎng)頁,可以認(rèn)為其更新頻率也是類似的。要計算某一個類別網(wǎng)頁的更新頻率,只需要對這一類網(wǎng)頁抽樣,以他們的更新周期作為整個類別的更新周期?;舅悸啡鐖D:

        搜索引擎網(wǎng)頁更新策略

         

          5.云存儲文檔

         

          應(yīng)用的知識:

          1,GFS,使用GFS分布式文件系統(tǒng)存儲海量文檔。

          2,BitTable,在GFS的基礎(chǔ)上構(gòu)建BitTable的數(shù)據(jù)模型;

          3,MegaStore存儲模型又建立在BitTable之上的存儲和計算模型。

          4,Map/Reduce云計算模型和系統(tǒng)計算框架。

         

          4.1BitTable存儲原始的網(wǎng)頁信息

          如圖4-1所示的邏輯模型,示例crawldbtable用于存儲爬蟲抓取的網(wǎng)頁信息,

          其中:RowKey為網(wǎng)頁的URL,出于排序效率考慮,URL中主機(jī)域名字符順序往往被反置,如www.facebook.com被處理為com.facebook.www;

         

          ColumnFamily包括title、content、anchor,其中tile保存網(wǎng)頁的標(biāo)題,content保存網(wǎng)頁html內(nèi)容,anchor保存網(wǎng)頁被其它網(wǎng)頁引用的鏈接,qualifier就是其它網(wǎng)頁的URL,內(nèi)容為其它網(wǎng)頁中該鏈接的頁面顯示字符,同樣anchor鏈接的URL主機(jī)域字符串被反置。對于不同時間獲取的同一網(wǎng)頁的有關(guān)內(nèi)容被打上不同的時間戳Timestampe,如圖縱向座標(biāo)可以看到不同的版本。

        Crawldb Table 邏輯模型

          圖4-1CrawldbTable邏輯模型

         

          在實際的存儲中,圖4-1所示的多維邏輯結(jié)構(gòu)會被二維平面化為(Key,Value)對,并且進(jìn)行排序。在(Key,Value)中,Key由四維鍵值組成,包括:RowKey,ColumnFamily(處理時使用8比特編碼),ColumnQualifier和Timestamp,如圖4-2所示,為Key的實際結(jié)構(gòu),在對Key進(jìn)行排序過程中,有最新Timestamp的Key會被排在最前面,flag項用于標(biāo)明系統(tǒng)需要對該(Key,Value)記錄進(jìn)行的操作符,如增加、刪除、更新等。

        圖4-2 key結(jié)構(gòu)圖

          圖4-2key結(jié)構(gòu)圖

         

          如圖4-3是crawldb二維平面化后經(jīng)過排序的格式。圖中Key列中的信息由RowKey(頁面的URL)、ColumnFamily、ColumnQualifer和Timestamp組成,其中并未顯示Keyflag項,flag項主要用于表項處理。

        crawldb表的key/valuye 列表

          圖4-3crawldb表的key/valuye列表

         

          圖4-4顯示了crawldbtable的CellStore文件格式。CellStore文件中存儲了經(jīng)過排序后的Key,Value對,物理上,這些數(shù)據(jù)都被壓縮后存儲,以大約64k大小的塊為單位組織;在文件結(jié)尾處,保留有三個索引部分:BloomFilter、塊索引(rowkey+塊在文件內(nèi)的偏移)、Trailer。

        ellStore文件中存儲了經(jīng)過排序后的Key,Value對

          4.2Map/Reduce計算模型處理網(wǎng)頁信息:網(wǎng)頁去重和生成倒排索引

          網(wǎng)頁去重我們采用簡單策略,目標(biāo)是將網(wǎng)頁集合內(nèi)所有內(nèi)容相同的網(wǎng)頁找出來,采取對網(wǎng)頁內(nèi)容取哈希值的方法,比如MD5,如果兩個網(wǎng)頁的MD5值相同,則可以認(rèn)為兩頁內(nèi)容完全相同。在Map/Reduce框架下,輸入數(shù)據(jù)是網(wǎng)頁本身,可以用網(wǎng)頁的URL作為輸入數(shù)據(jù)的Key,網(wǎng)頁內(nèi)容是輸入數(shù)據(jù)的value;Map操作則對每個網(wǎng)頁的內(nèi)容利用MD5計算哈希值,以這個哈希值作為中間數(shù)據(jù)的Key,網(wǎng)頁的URL作為中間數(shù)據(jù)的value:Reduce操作則將相同Key的中間數(shù)據(jù)對應(yīng)的URL建立成一個鏈表結(jié)構(gòu),這個鏈表代表了具有相同網(wǎng)頁內(nèi)容哈希值的都有哪些網(wǎng)頁。這樣就完成了識別內(nèi)容相同網(wǎng)頁的任務(wù)。

          對于建立倒排索引這個任務(wù)來說,如圖4-6所示,輸入數(shù)據(jù)也是網(wǎng)頁,以網(wǎng)頁的DOCID作為輸入數(shù)據(jù)的Key,網(wǎng)頁中出現(xiàn)的單詞集合是輸入數(shù)據(jù)的Value;Map操作將輸入數(shù)據(jù)轉(zhuǎn)化為(word,DOCID)的形式,即某個單詞作為Key,DOCID作為中間數(shù)據(jù)的value,其含義是單詞word在DOCID這個網(wǎng)頁出現(xiàn)過;Reduce操作將中間數(shù)據(jù)中相同Key的記錄融合,得到某個單詞對應(yīng)的網(wǎng)頁ID列表:

        如圖4-6所示,輸入數(shù)據(jù)也是網(wǎng)頁

          圖4-6

        北京愛品特SEO網(wǎng)站優(yōu)化提供專業(yè)的網(wǎng)站SEO診斷服務(wù)、SEO顧問服務(wù)、SEO外包服務(wù),咨詢電話或微信:13811777897 袁先生 可免費(fèi)獲取SEO網(wǎng)站診斷報告。

        北京網(wǎng)站優(yōu)化公司 >> SEO資訊 >> SEO技術(shù)技巧 >> 搜索引擎原理:網(wǎng)絡(luò)爬蟲    本站部分內(nèi)容來源于互聯(lián)網(wǎng),如有版權(quán)糾紛或者違規(guī)問題,請聯(lián)系我們刪除,謝謝!

        上一篇:企業(yè)建站建設(shè)應(yīng)該選擇什么域名后綴?

        下一篇:360所有蜘蛛IP列表(可通過ctrl+F進(jìn)行查找)

        返回列表
        SEO案例
        OUR ADVANTAGE WORKS

        售后響應(yīng)及時

        全國7×24小時客服熱線

        數(shù)據(jù)備份

        更安全、更高效、更穩(wěn)定

        價格公道精準(zhǔn)

        項目經(jīng)理精準(zhǔn)報價不弄虛作假

        合作無風(fēng)險

        重合同講信譽(yù),無效全額退款
        永宁县| 蒙自县| 泸西县| 阜阳市| 鹤山市| 湄潭县| 蓝田县| 安仁县| 古田县| 双鸭山市| 贵阳市| 威信县| 余姚市| 那曲县| 法库县| 东辽县| 鸡西市| 武冈市| 宜章县| 平乡县| 库车县| 台东县| 汾阳市| 太原市| 郴州市| 二连浩特市| 阜康市| 伊通| 富阳市| 巴南区| 东安县| 庆云县| 临夏县| 岱山县| 景泰县| 康定县| 郸城县| 泸州市| 六枝特区| 靖安县| 康保县|