成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

下一代互聯(lián)網(wǎng)技術(shù)-2015試卷李楚煌

深圳大學(xué)期末考試試卷開/閉卷 命題人(簽字) 崔來中 審題人(簽字) 年 月 日 綜述報告下一代互聯(lián)網(wǎng)技術(shù)A/B卷 學(xué)分 2.5

深圳大學(xué)期末考試試卷

開/閉卷 命題人(簽字) 崔來中 審題人(簽字) 年 月 日 綜述報告

下一代互聯(lián)網(wǎng)技術(shù)

A/B卷 學(xué)分 2.5

課程編號 1502320001 課程名稱

課程綜述報告由個人獨(dú)立完成。 要求學(xué)生從教師的授課專題,包括:

(1) 下一代互聯(lián)網(wǎng)過渡技術(shù)(翻譯技術(shù)和隧道技術(shù)) (2) 云計算(資源調(diào)度、存儲、安全) (3) 社交網(wǎng)絡(luò)(推薦、影響力分析、傳播模型) (4) 物聯(lián)網(wǎng)(無線傳感器網(wǎng)絡(luò)、節(jié)能技術(shù)) (5) 搜索技術(shù)(爬蟲技術(shù)、圖片搜索、語義搜索) (6) P 2P (文件下載、流媒體分發(fā))

(7) 大數(shù)據(jù)處理與分析技術(shù)(網(wǎng)絡(luò)與機(jī)器學(xué)習(xí))

(8) 多媒體網(wǎng)絡(luò)(多媒體網(wǎng)絡(luò)與SDN 、流媒體與機(jī)器學(xué)習(xí))

(9) 軟件定義網(wǎng)絡(luò)(SDN 與安全、SDN 與流量優(yōu)化、SDN 與網(wǎng)絡(luò)管理) 選擇一個專題中的具體技術(shù)問題(上述括號內(nèi)為推薦的問題內(nèi)容)作為綜述報告主題,綜述報告名稱自擬,參照附件一“綜述報告格式模板”與附件二“綜述報告寫作指導(dǎo)完成綜述報告”;評分標(biāo)準(zhǔn)見附件三。 提交的課程綜述報告要符合深圳大學(xué)相關(guān)的格式規(guī)范。

第17周提交課程綜述報告電子版到blackboard 系統(tǒng),紙質(zhì)版交到任課老師處。

《 下一代互聯(lián)網(wǎng)技術(shù) 》試卷 卷 第 1 頁 共 15 頁

,

附件一 綜述報告格式模板

深圳大學(xué)考試答題紙

(以論文、報告等形式考核專用)

二○一 學(xué)年度第

課程編號 1502320

001 課程名稱 下一代互聯(lián)網(wǎng)技術(shù) 主講教師 崔來中 評分 20131503

學(xué) 號 83

姓名 李楚煌 專業(yè)年級 大三網(wǎng)絡(luò)工程01

題目:

網(wǎng)頁搜索中爬蟲技術(shù)的若干研究

1. 前言

在21世紀(jì)互聯(lián)網(wǎng)高速發(fā)展的背景下,搜索引擎在人們生活中有著舉足輕重的作用,而網(wǎng)絡(luò)爬蟲是搜索引擎中的重要的信息采集器,是搜索引擎技術(shù)的核心部分。

本文是對爬蟲技術(shù)在現(xiàn)今網(wǎng)絡(luò)環(huán)境中出現(xiàn)不同的問題、漏洞提出一些針對性的探究方法,并對各種方法進(jìn)行實驗分析,主要研究分析工作如下:

網(wǎng)絡(luò)爬蟲中的核心技術(shù)部分,即網(wǎng)絡(luò)爬蟲系統(tǒng)的多線程設(shè)計與實現(xiàn),詳細(xì)介紹網(wǎng)絡(luò)爬蟲的概念及信息分類涉及到的算法,技術(shù)要點(diǎn),并探討實現(xiàn)對漏洞平臺當(dāng)中的爬蟲技術(shù)的聚焦。

網(wǎng)絡(luò)爬蟲的核心在于,以端口接通為設(shè)計基礎(chǔ),依據(jù)HTTP 協(xié)議,使用SOCKET 套接字相關(guān)函數(shù)向服務(wù)器端發(fā)送HTTP 請求,得到目標(biāo)URL 對應(yīng)的網(wǎng)頁內(nèi)容,再從該網(wǎng)頁提取出未爬取過的URL ,將該URL 重新作為源URL 進(jìn)行新的一輪向下爬取搜索工作,按照各種優(yōu)先算法向下爬行,從而完成網(wǎng)絡(luò)爬蟲系統(tǒng)的爬行工作。 在互聯(lián)網(wǎng)中有著很多協(xié)議,它們彼此聯(lián)系著,支持著許多網(wǎng)絡(luò)程序的運(yùn)行。網(wǎng)絡(luò)爬蟲系統(tǒng)是基于SOCKET 協(xié)議的,而SOCKET 協(xié)議的基礎(chǔ)建立在TCP/IP協(xié)議之上。由此,網(wǎng)絡(luò)爬蟲是基于最原始的協(xié)議,依靠算法技術(shù),組織分布式系統(tǒng),非常有潛力進(jìn)行強(qiáng)有力的數(shù)據(jù)探索與挖掘。既然網(wǎng)絡(luò)爬蟲的優(yōu)勢潛能如此巨大,接下來我會詳細(xì)討論近期我對這個技術(shù)的若干研究。

2. 閱讀文獻(xiàn)概述

《 下一代互聯(lián)網(wǎng)技術(shù) 》試卷 卷 第 2 頁 共 15 頁

,

基于此次希望探討的研究方向:網(wǎng)絡(luò)爬蟲,在中文文獻(xiàn)方面,主要有以下閱讀:多線程進(jìn)行網(wǎng)絡(luò)爬蟲的過程優(yōu)化, 基于網(wǎng)絡(luò)爬蟲的Web 信息采集技術(shù),爬蟲對漏洞管理平臺核心幫助。在英文文獻(xiàn)方面主要有:《A Cloud-based Web Crawler Architecture 》 ,《A Spatial Web Crawler for Discovering 》, 《Design of improved focused web crawler》。這幾篇文獻(xiàn)探究的層次在于如何對信息進(jìn)行有效地采集、采集的量如何夠快夠大、以漏洞管理平臺為切口,看爬蟲技術(shù)有哪方面的發(fā)展?jié)摿Α?/p>

多線程爬蟲又可以理解為分布式爬蟲,主要閱讀的部分有分布式網(wǎng)絡(luò)爬蟲結(jié)構(gòu)設(shè)計,其中又細(xì)分為爬行節(jié)點(diǎn)的結(jié)構(gòu)設(shè)計,控制節(jié)點(diǎn)的結(jié)構(gòu)設(shè)計。分布式網(wǎng)絡(luò)爬蟲的關(guān)鍵技術(shù)在于,種子集合的優(yōu)化選取,分布函數(shù)的選擇。有這些分布式策略來帶領(lǐng)多線程下載。而對網(wǎng)絡(luò)信息的閱讀,在于有效采集,需要對信息檢索引擎有所劃分:全文檢索、目錄索引型檢索、元檢索。再深入到網(wǎng)絡(luò)爬蟲的搜索策略,有深度優(yōu)先搜索策略、寬度優(yōu)先搜索策略、聚焦搜索策略。針對信息的實質(zhì)內(nèi)容,爬蟲有其特色性質(zhì):布告欄的數(shù)據(jù)分類及并聯(lián)式關(guān)聯(lián)、視頻的可預(yù)覽及真實尋址、論壇的自動動態(tài)更新實現(xiàn)。對漏洞平臺的爬蟲聚焦技術(shù)的閱讀,首先了解的是在漏洞平臺這個領(lǐng)域,爬蟲子模塊的劃分:爬蟲接口模塊、配置文件解析模塊、網(wǎng)頁爬取模塊、網(wǎng)頁解析模塊、URL 過濾去重模塊、漏洞信息保存模塊。在漏洞平臺管理這個框架下,對爬蟲效率如何改進(jìn)、URL 相關(guān)內(nèi)容如何改進(jìn)有所閱讀了解。

此外,《A Cloud-based Web Crawler Architecture》主要論述的網(wǎng)絡(luò)爬蟲為代表的應(yīng)用程序,如何在網(wǎng)絡(luò)上更好得進(jìn)行有趣的信息的查找。因為網(wǎng)路上有巨量的索引的鏈接或非結(jié)構(gòu)化的數(shù)據(jù),這需要網(wǎng)絡(luò)爬蟲去應(yīng)對這些挑戰(zhàn):鏈接和高密度計算的復(fù)雜性。在這種背景下,該文獻(xiàn)提供了云計算模式,支持彈性的資源化和非結(jié)構(gòu)化的數(shù)據(jù),并提供讀寫加注功能。采用云計算的功能和MapReduce 編程技術(shù),可以使我們能夠分布式抓取網(wǎng)頁和存儲在云計算中所發(fā)現(xiàn)的Azure 表?!禔 Spatial Web Crawler for Discovering》,這篇文獻(xiàn)其實與單純地談?wù)撆老x技術(shù)不一樣,一般地討論爬蟲技術(shù),是如何在物理、軟件層面提高單體計算機(jī)的速度、分布式地進(jìn)行搜索,又或者對URL 等算法策略的優(yōu)化。而這篇文獻(xiàn)談?wù)摰目梢詺w屬另一個學(xué)科,它圍繞地緣服務(wù)器提供的地理特征,進(jìn)行空間信息的劃分,使用空間的數(shù)據(jù)源。核心來說,這是一個對地理領(lǐng)域信息系統(tǒng)的研究。地理空間數(shù)據(jù)在本質(zhì)上常常動態(tài)并在異構(gòu)的形式提供,網(wǎng)上空間數(shù)據(jù)是一個基于地理的形式進(jìn)行發(fā)布的??臻g網(wǎng)絡(luò)爬蟲專注于地理空間在地緣服務(wù)器上的功能。《Design of

《 下一代互聯(lián)網(wǎng)技術(shù) 》試卷 卷 第 3 頁 共 15 頁

,

improved focused web crawler》這篇文獻(xiàn)講述的東西比較細(xì),是對URL 和錨文本的語義性質(zhì)的研究分析。它提出了一種技術(shù),偏重于基于語義重點(diǎn)的網(wǎng)絡(luò)履帶的分析探討。

3. 課題研究方向的現(xiàn)狀與發(fā)展趨勢

研究方向主要有以下六個分支: 多線程(分布式)進(jìn)行網(wǎng)絡(luò)爬蟲的過程優(yōu)化, 基于網(wǎng)絡(luò)爬蟲的Web 信息采集技術(shù),爬蟲對漏洞管理平臺核心幫助,云計算模式這種支持彈性的資源化和非結(jié)構(gòu)化的數(shù)據(jù)的爬蟲技術(shù),空間網(wǎng)絡(luò)爬蟲這樣專注于地理空間在地緣服務(wù)器上研究的新科技,錨文本的語義性質(zhì)的研究分析。

分布式網(wǎng)絡(luò)爬蟲的理論基礎(chǔ):它由多臺PC 機(jī)組成,其中一臺是控制節(jié)點(diǎn),其他為爬行節(jié)點(diǎn),控制節(jié)點(diǎn)負(fù)責(zé)維護(hù)所有結(jié)點(diǎn)的信息,對所有結(jié)點(diǎn)的信息進(jìn)行同步,同時在控制節(jié)點(diǎn)上進(jìn)行結(jié)點(diǎn)的添加和刪除。它分為5個模塊:URL 分析模塊、下載模塊、網(wǎng)頁分析模塊、結(jié)點(diǎn)通信模塊 、URL 分配模塊。

分布式網(wǎng)絡(luò)爬蟲的方法可以具體到5個模塊來分析探討。URL 分析模塊是接受來自分布式模塊分配的URL 任務(wù),判斷該URL 是否被訪問過。訪問過,進(jìn)隊列;沒訪問過,忽略。那在分布式網(wǎng)絡(luò)爬蟲中與單臺PC 有所不同的是:單臺PC 機(jī)只需要對URL 地址進(jìn)行記錄,還有域名轉(zhuǎn)換,計算復(fù)雜度低;分布式網(wǎng)絡(luò)爬蟲中對需要IP 與域名轉(zhuǎn)換的計算量大,復(fù)雜度高。下面具體解釋:維護(hù)URL 隊列,在每個節(jié)點(diǎn)維護(hù)一個本節(jié)點(diǎn)將要訪問的URL 隊列模塊,可以參照Mercator 系統(tǒng),每一道指向一個domain ,這樣可以避免多個線程同時訪問一個domain 。剛剛已經(jīng)談到計算量大的問題,是由于多道隊列的數(shù)據(jù)結(jié)構(gòu)在爬行進(jìn)行到一定階段時,數(shù)據(jù)量一定分成龐大。如何解決?在內(nèi)存不能夠承載時,將隊列的中間部分放在硬盤上,在內(nèi)存中只保留隊列的頭和尾。還有就是,完整的URL 是沒必要記錄的,只需要判斷URL 是否已經(jīng)下載過了。因此,可以采用哈希表存儲URL 的checksums, 高位存儲hostname 的checksum ,這樣一來,來自同樣的domain 的URL 就會排列在一起。之前說過,把數(shù)據(jù)放在硬盤上。這樣實現(xiàn):建立一個LRU cache 。明顯,網(wǎng)頁鏈接的聚簇性和高位存儲hostname 的數(shù)據(jù)結(jié)構(gòu),使硬盤的讀寫概率非常小,提高了爬蟲分布式系統(tǒng)的運(yùn)行速度。IP 與域名需要轉(zhuǎn)換,是因為URL 地址不同但可能指向同一物理網(wǎng)頁。譬如,多個域名共同擁有一個IP ,而各個域名下的內(nèi)容是不同的;DNS 轉(zhuǎn)換導(dǎo)致的同一域名對應(yīng)的IP

《 下一代互聯(lián)網(wǎng)技術(shù) 》試卷 卷 第 4 頁 共 15 頁

,

是不一樣的;一個站點(diǎn)多個域名。面多這種情況如何解決呢?首先,積累一定數(shù)量的域名和IP ,下載一些網(wǎng)頁判斷分別屬于哪種情況,積累下來,然后針對性地取舍,避免重復(fù)收集使用。下載模塊的核心在于節(jié)點(diǎn)線程控制。主要解決的是本地節(jié)點(diǎn)與Web 端服務(wù)器的通信問題。在前言中提到,爬蟲技術(shù)也是基于TCP 協(xié)議的。客戶有時在同一次會話中希望從服務(wù)器端下載更多的HTML 頁面,由于HTTP1.0,該TCP 需要終止。這是可以這樣,為了節(jié)省時間和網(wǎng)絡(luò)帶寬,可以保留上次已經(jīng)建立好的鏈接。如果該鏈接沒有失效,本次可以繼續(xù)使用。詳細(xì)點(diǎn)說,就是服務(wù)器接收爬蟲客戶端發(fā)送的請求消息后,先返回一個HTTP 頭信息,包含文件類型,大小,最后修改時間等內(nèi)容,后續(xù)添加包含網(wǎng)頁的文本內(nèi)容。根據(jù)網(wǎng)頁體的大小,申請內(nèi)存空間準(zhǔn)備接收,有兩種情況需要放棄接收:一、網(wǎng)頁類型不符合要求。

二、超出預(yù)定接收大小。畢竟我們現(xiàn)在討論的是多線程的網(wǎng)絡(luò)爬蟲技術(shù),在下載模塊,重點(diǎn)在于結(jié)點(diǎn)線程模塊。結(jié)點(diǎn)線程:根據(jù)控制計算機(jī)硬件的運(yùn)行情況,把并行開設(shè)的線程數(shù)控制在一個最佳的數(shù)量上,并監(jiān)控保證同時訪問同一個domain 的線程數(shù)不超過n ,這樣是為了保證web 服務(wù)器不會出現(xiàn)類似于拒絕服務(wù)攻擊DOS 反應(yīng)使得一些URL 的漏取。最好建立一個DNS 緩沖區(qū),即是緩存。這樣可以避免頻繁地查詢DNS 服務(wù)器。網(wǎng)頁分析模塊相對簡單,HTML 比較靈活,URL 出現(xiàn)的語境較多,我們應(yīng)該參照HTML 的語法,給出相應(yīng)的URL 出現(xiàn)的語境。URL 分配模塊工作是為了協(xié)調(diào)各個節(jié)點(diǎn),將任務(wù)分配給不同的節(jié)點(diǎn),并且能夠增刪節(jié)點(diǎn)。節(jié)點(diǎn)通信模塊負(fù)責(zé)節(jié)點(diǎn)間的相互通信,除了采集器采集網(wǎng)頁時直接與Internet 交互外,其他時候所有網(wǎng)絡(luò)通訊都通過通信器完成。上次模塊通過Send ,把它的數(shù)據(jù)包以單體為目標(biāo)標(biāo)識發(fā)布。接收上層的發(fā)送請求后,通信器先將數(shù)據(jù)包緩存起來,再通過目標(biāo)標(biāo)識維護(hù)每個節(jié)點(diǎn)的節(jié)點(diǎn)號和IP 對應(yīng)的節(jié)點(diǎn)信息。有節(jié)點(diǎn)通信模塊,可以只關(guān)注本身的策略,并且和其他模塊松耦合,方便架構(gòu)在不同的對等網(wǎng)絡(luò)上。

分布式網(wǎng)絡(luò)爬蟲的方案,可以先講述一個中級規(guī)模的網(wǎng)頁搜集,當(dāng)然,對于一些大型的網(wǎng)站如鳳凰網(wǎng)、騰訊首頁等網(wǎng)站的全站下載,分布式系統(tǒng)仍有用武之地。先了解下對中等規(guī)模的網(wǎng)站的爬蟲搜集,一個網(wǎng)站的host 是一樣的,因此需要在普通的任務(wù)分配基礎(chǔ)上做出一些改動,首先任務(wù)的粒度不能再選擇host ,因為這樣一來,同一網(wǎng)站的網(wǎng)頁的哈希函數(shù)的數(shù)值是唯一的,任務(wù)只能分配在節(jié)點(diǎn)上,對于分布式網(wǎng)絡(luò)爬蟲系統(tǒng),顯然是不

《 下一代互聯(lián)網(wǎng)技術(shù) 》試卷 卷 第 5 頁 共 15 頁

,

行的。粒度如果按URL 分配,粒度又太小了,由此,可以對網(wǎng)站的URL 信息收集和分析,總結(jié)出網(wǎng)站全站下載多機(jī)協(xié)同任務(wù)分配算法。舉例說明,大型網(wǎng)站下有很多子網(wǎng)站,而同一子網(wǎng)站網(wǎng)頁的URL 有一些共同點(diǎn),它們的URL 前一兩個字都相同,這些子網(wǎng)頁的互聯(lián)關(guān)系比較緊密,子網(wǎng)站與子網(wǎng)站網(wǎng)頁的引用頻繁度沒有那么高,差別較大,可以把任務(wù)分配的粒度定為子網(wǎng)站。由于粒度的合理分配,分布式對中大型網(wǎng)站進(jìn)行全站下載是可實現(xiàn)的。

關(guān)于分布式網(wǎng)絡(luò)爬蟲技術(shù)的現(xiàn)狀,國內(nèi)外的一些大公司已經(jīng)有很成熟的解決方案,并已投入使用。其中以Google 研究的最早,也最先進(jìn)。在Google 公開的網(wǎng)絡(luò)爬蟲設(shè)計中,Internet Archive Crawler是可以使用多臺機(jī)器進(jìn)行爬行的,每個Crawler 進(jìn)程可分配64個站點(diǎn)同時爬行,每個站點(diǎn)只分配一個Crawler 進(jìn)行爬行。谷歌的分布式網(wǎng)絡(luò)爬蟲技術(shù)能夠在全球處于領(lǐng)先地方,也在于它的搜索引擎在全球處于領(lǐng)先地位。Google 每天都會對使用它搜索引擎的網(wǎng)站進(jìn)行一定量的爬蟲,有了大量的數(shù)據(jù)分析,它對于網(wǎng)絡(luò)上的語義分析是領(lǐng)先的,而在全球大量分布的服務(wù)器,也促進(jìn)了它在分布式網(wǎng)絡(luò)爬蟲的發(fā)展。其中它研發(fā)的Mercator 是一個非常出色的Crawler ,該技術(shù)完全用Java 實現(xiàn),它才用的數(shù)據(jù)結(jié)構(gòu)可以不管爬行規(guī)模的大小,在內(nèi)存只占有限的空間。分布式網(wǎng)絡(luò)爬蟲現(xiàn)階段采用的技術(shù)主要是服務(wù)器集群技術(shù),由中央控制軟件進(jìn)行任務(wù)發(fā)布、負(fù)載平衡和運(yùn)行監(jiān)控。

基于爬蟲的Web 信息采集技術(shù)的理論基礎(chǔ):分析目標(biāo)網(wǎng)站結(jié)構(gòu),確定抓取規(guī)則,擴(kuò)展Heritrix 爬蟲,對于網(wǎng)頁內(nèi)容,可以分析所得網(wǎng)頁的頁面結(jié)構(gòu)特點(diǎn),利用Jsoup 過濾頁面噪聲信息,提取內(nèi)容,在內(nèi)容索引方面,運(yùn)用Lucenne 對存儲在數(shù)據(jù)中的信息進(jìn)行索引,實現(xiàn)對采集信息的全文索引,在內(nèi)存呈現(xiàn)方面,可以整合Struts2、Spring 、Hibernate 這三種技術(shù)框架,搭建三層J2EE 框架,利用Web 頁面展示所抓取過濾后的信息。

Web 信息采集的的方法可以分為三部分介紹,一是Heritrix 這類基于Java 程序語言的開源聚焦Web 網(wǎng)絡(luò)爬蟲工具,二是Jsoup 這類HTML 解析器,方便用戶進(jìn)行內(nèi)容抽取操作。三是Lucene 這種可以完整地進(jìn)行全文檢索和查詢的開源程序庫。Heritrix 是一個可以通過Web 操作界面,實現(xiàn)對網(wǎng)絡(luò)爬蟲的啟動、監(jiān)控和運(yùn)行調(diào)整。用戶利用Heritrix 可以較完整地獲取目標(biāo)站點(diǎn)的內(nèi)容,實現(xiàn)對站點(diǎn)內(nèi)容的深度復(fù)制,這里甚至可以包括對圖像、文檔在內(nèi)的非文本內(nèi)容。Heritirx 突出特點(diǎn)在于強(qiáng)大的可擴(kuò)展性,允許用戶

《 下一代互聯(lián)網(wǎng)技術(shù) 》試卷 卷 第 6 頁 共 15 頁

,

靈活地選擇擴(kuò)展組件。有五個組件是比較重要的。中央控制器(組件),是Heritrix 進(jìn)行抓取任務(wù)的核心組件,它全程控制著整個抓取流程。它決定了哪些URL 入隊,控制當(dāng)前抓取內(nèi)容的范圍。Frontier 組件,作用是為每一個線程不斷地提供URL 。ToePool ,負(fù)責(zé)抓取任務(wù)所創(chuàng)建的所有子線程。ServerCache 負(fù)責(zé)緩存所抓取的所有Host 名稱及Server 名稱。Crawl 組件,整個抓取工作的開始點(diǎn)。Processor 組件,是其他多種處理器的共同父類。上述基本讓我們了解了一個Heritrix 是如何工作的,那么Heritrix 又具備什么優(yōu)點(diǎn)呢?首先,它可在多個獨(dú)立的站點(diǎn)上持續(xù)進(jìn)行內(nèi)容爬去。其次它是采用廣度優(yōu)先搜索策略進(jìn)行頁面爬去,有利于對擴(kuò)大頁面內(nèi)容的范圍。然后,它可以僅從提供的一個種子地址即可開始爬行,進(jìn)行準(zhǔn)確地站點(diǎn)URL 內(nèi)容的收集和主機(jī)信息的收集。而且它各項主要部件都是高效可擴(kuò)展的,易于定制。最后它又全面良好的配置,如配置輸出日志、歸檔文件、帶寬上限設(shè)置。Jsoup 是一種HTML 解析器,它是基于MIT 許可協(xié)議發(fā)布的,可以用于商業(yè)項目。它的功能主要包括:(1)從某個URL 、字符串或文件中解析HTML 。(2) 利用DOM 遍歷或CSS 選擇器來查找、提取數(shù)據(jù)。(3)可操縱HTML 元素、屬性和文本(4)可依據(jù)一個安全的白名單過濾用戶提交的內(nèi)容,以防止XSS 攻擊。DOM 樹算法是Jsoup 的核心部分。DOM ,即文件對象模型,是處理可擴(kuò)展標(biāo)志語言的通用標(biāo)準(zhǔn)編程接口。DOM 常用于表示和處理HTML 或HTML 文檔。完整遍歷一棵DOM 樹既即可以訪問和處理頁面中的任何一個元素。Lucenet 提供了簡單而強(qiáng)大的接口,用戶可以輕松地實現(xiàn)對全文的索引和搜尋。需要提醒一點(diǎn)的是,Lucene 僅僅是一個信息檢索程序庫,而不是一個完整的搜索引擎。換言之,需要開發(fā)者對其構(gòu)建特定的全文搜索應(yīng)用,普通用戶是很難直接使用它的。Lucene 具有以下優(yōu)點(diǎn):(1)跨平臺適用性。Lucene 生成的索引文件以8位字節(jié)為基礎(chǔ),明顯的,這是能夠在兼不同平臺下使用的,CPU 的起源是8位字節(jié)的,后期才逐漸擴(kuò)展到16字節(jié),但仍然能兼容8位字節(jié)。 (2)索引優(yōu)化。在對傳統(tǒng)倒排索引應(yīng)用的基礎(chǔ)上,Lucene 實現(xiàn)了分塊索引機(jī)制,能夠面向新的文件構(gòu)建小文件索引,從而提升索引速度。另外Lucene 支持增量索引,即可以只為新插入的數(shù)據(jù)創(chuàng)建索引文件,然后與原有索引進(jìn)行合并,同樣提升了索引速度。(3) 易學(xué)習(xí)。Lucene 是一款基于Java 的優(yōu)秀的面向?qū)ο蟮南到y(tǒng)架構(gòu),因而對于Lucene 擴(kuò)展的學(xué)習(xí)難度較低,開發(fā)人員可以十分方便地擴(kuò)充新功能。(4) 獨(dú)立的文本分析接口。Lucene 內(nèi)置了一套獨(dú)立于語言和文件格式的文本分析接口。用戶只需要實

《 下一代互聯(lián)網(wǎng)技術(shù) 》試卷 卷 第 7 頁 共 15 頁

,

現(xiàn)對文本分析的接口,就能實現(xiàn)對特定語言和文件格式的文本分析。簡而言之,不同的語言都可以用Lucence 進(jìn)行文本分析,只要相應(yīng)地寫好接口

(5)提供檢索工具包。Lucene 本身提供了一套強(qiáng)大的查詢引擎,用戶可以直 接方便地使用。Lucene 提供的查詢功能實現(xiàn)了布爾操作、模糊查詢(Fuzzy Search), 分組查詢等等。

基于網(wǎng)絡(luò)爬蟲的網(wǎng)站信息采集技術(shù)有個案例,針對百度百家網(wǎng)站,直接獲取某個作者的文章列表頁面。首先完成對WebClient 對象的初始化,這是訪問網(wǎng)頁的入口對象。接著選定Js 解析核心、禁用CSS 樣式、設(shè)置Ajax 控制器、設(shè)置超時時間、確定目標(biāo)URL 。在觸發(fā)操作對象方面,采用DOM 技術(shù),實現(xiàn)對事件觸發(fā)對象的定位。其次是明確觸發(fā)事件的類型。最后利用DOM 技術(shù)實現(xiàn)對目標(biāo)結(jié)點(diǎn)的定位,實現(xiàn)對動態(tài)內(nèi)容的獲取。通過上述動作,即可完成對所有作者文章鏈接信息的采集。

基于爬蟲的Web 采集技術(shù)的研究現(xiàn)狀。目前,信息采集系統(tǒng)在國內(nèi)外已經(jīng)足夠多了,或開源,或商用,突出特點(diǎn)是面向整個Web 范圍來研究??梢苑譃橐韵聨最悾夯谡麄€Web 的,它給定若干個種子URL 進(jìn)行擴(kuò)充,理論上可以到整個明網(wǎng)(相對于暗網(wǎng)而言);面向主題的Web 信息采集;增量式采集,英文名是Incremental Web Crawling,特點(diǎn)是,在采集過后的一段時間,對這段內(nèi)容中發(fā)生變化的部分會再次采集,其他則不予理會;Customized Web Crawling,通過與用戶交互等手段,盡可能地滿足用戶多元化的信息需求。分布式信息采集,前文已敘述,在此不贅述。遷移的信息采集,將Web 采集器上傳至目標(biāo)站點(diǎn)實現(xiàn)信息采集,再將采集結(jié)果回傳到本地。

基于漏洞管理平臺的聚焦爬蟲技術(shù)的理論基礎(chǔ):漏洞管理平臺是按照當(dāng)下用戶的需求,利用爬蟲功能從國內(nèi)外各大知名漏洞網(wǎng)站上爬取漏洞信息,并解析保存到本機(jī),方便用戶的管理查看。那管理平臺的聚焦爬蟲技術(shù),是由漏洞管理平臺項目根據(jù)項目的具體、特殊需求,借鑒當(dāng)前國內(nèi)外前沿爬蟲技術(shù),自主創(chuàng)新研發(fā)的一個新式爬蟲技術(shù)。

這個技術(shù)的方法可以從它的爬蟲接口窺探。它有爬蟲接口子模塊,提供調(diào)用爬蟲模塊的所有接口。它有以下三種功能:1. 設(shè)置更新爬蟲策略,設(shè)置信息存放路徑2. 啟動停止漏洞采集任務(wù)3. 查詢漏洞采集任務(wù)的狀態(tài)信息。配置文件解析子模塊,這是為了漏洞解析這一部分而服務(wù)的。它將每個網(wǎng)站的漏洞解析方式設(shè)置為一個XML 配置文件,簡化漏洞信息解析的編

《 下一代互聯(lián)網(wǎng)技術(shù) 》試卷 卷 第 8 頁 共 15 頁

,

碼量。這里的漏洞編碼是:CVEID ,即每一個漏洞信息的漏洞編碼,每一個CVEID 都和一條漏洞信息相對應(yīng),國內(nèi)外各大漏洞網(wǎng)站都采取了這種命名方式來發(fā)布每一條漏洞信息。網(wǎng)頁爬取子模塊,與普通的爬蟲技術(shù)并無二致。網(wǎng)頁解析子模塊,在對于漏洞信息,有一個特點(diǎn),從NVD 和OSVDB 采樣,進(jìn)行格式分析。URL 過濾去重子模塊,這與一般的過濾去重技術(shù)也大同小異。漏洞信息保存子模塊,以XML 格式保存,寫入文件時需要進(jìn)行加密,畢竟這些信息比較敏感。

基于爬蟲技術(shù)的漏洞管理平臺,有一個案例。因為漏洞管理平臺是華為安全能力中心的涉密項目,對其中的具體技術(shù)暫不討論。這里提供一些測試結(jié)果進(jìn)行講解。在網(wǎng)頁解析優(yōu)化前,新浪首頁的頁面大小是408/Kb,任務(wù)數(shù)量20,所有任務(wù)完成時間在優(yōu)化前是3.2min ,優(yōu)化后是2.7min 。網(wǎng)易首頁的頁面大小是369/Kb,任務(wù)數(shù)量20,所有任務(wù)完成時間在優(yōu)化前是3.0min ,優(yōu)化后是2.6min 。明顯可以看出域名檢索表方式優(yōu)化是有效的,這個漏洞管理平臺的聚焦爬蟲技術(shù)是可行的。

漏洞管理平臺的爬蟲聚焦技術(shù)的現(xiàn)狀是,爬蟲技術(shù)已經(jīng)漸漸成為人們檢索信息的工具,慢慢成為互聯(lián)網(wǎng)的入口和指南。這時候,用戶需求是不斷發(fā)展和豐富的過程,當(dāng)然,也就有對漏洞信息的需求。聚焦爬蟲不追求大的覆蓋率,而將目標(biāo)定為抓取某一特定主題內(nèi)容相關(guān)的網(wǎng)頁。當(dāng)然,它有不足的地方,兩點(diǎn):爬蟲效率瓶頸問題、URL 相關(guān)內(nèi)容改進(jìn)問題。

云計算模式下的爬蟲技術(shù)的理論基礎(chǔ)其實與前面講的分布式爬蟲非常類似,它的特點(diǎn)不在于技術(shù)上的更新,而在于計算范圍是幾何級地擴(kuò)張。分布式可以理解為系統(tǒng),而云計算即是網(wǎng)絡(luò)。其中以Hadoop 為典型代表,它是Java 語言開發(fā)的作為云計算的開源平臺。

云計算爬蟲技術(shù)的方法可以以Hadoop 為例簡要講解。它是Apache 下面的一款分布式并行計算框架,依據(jù)HDFS 高容錯的特點(diǎn),可以安置在便宜的硬件上。在Hadoop 框架中,負(fù)責(zé)計算的model 稱為Map/Reduce負(fù)責(zé),HDFS 是Hadoop 的關(guān)鍵部分。HDFS 的特點(diǎn)在于其使得存儲便宜,譬如Google 在全球范圍進(jìn)行云計算的爬蟲分布,每個服務(wù)中心每分鐘都可能燒壞一個硬件,此時硬件的成本一定不能太高。

云計算的案例之前在分布式爬蟲已以Google 為例講解,此不贅述。 云計算式的爬蟲技術(shù)現(xiàn)狀:已在國內(nèi)各地逐步發(fā)展,在國內(nèi),中國移動通信公司、百度公司、新浪公司都已經(jīng)搭建起以Hadoop 為框架的數(shù)據(jù)處理

《 下一代互聯(lián)網(wǎng)技術(shù) 》試卷 卷 第 9 頁 共 15 頁

,

平臺。云計算模式由于提供了平臺獨(dú)立性、可按需自助等功能,在2015年18屆智能下一代網(wǎng)絡(luò)的國際會議,云計算的一些提供商已經(jīng)開始把資源整合在一起。

空間網(wǎng)絡(luò)爬蟲的核心在于其根據(jù)地理空間研究的協(xié)議。這個協(xié)議可以使變換后的URL 發(fā)送到WFS 模塊。而WFS 模塊是記錄了檢索函數(shù)信息。例如,世界糧食首腦會議,GetCapability ,由這些關(guān)鍵字自動生成對應(yīng)相關(guān)的URL 。當(dāng)出現(xiàn)重復(fù)的GetCapability 信息。檢索時,不會再提取相關(guān)的URL 。 基于爬蟲的語義智能履帶式算法:基于域名的URL 算法,估計網(wǎng)頁上鏈接的相關(guān)性,在找到頁面的相關(guān)性的過程中,繼續(xù)已確定內(nèi)容的爬行,達(dá)到平衡的最佳水平。例如,可以使用詞匯數(shù)據(jù)庫,是網(wǎng)絡(luò)爬蟲更準(zhǔn)確和精準(zhǔn)。還有一些更細(xì)的方法,我已在前文間斷地提及過。這樣的履帶式算法,是可以我們的爬蟲效率大大提高到。

網(wǎng)絡(luò)爬蟲技術(shù)有個關(guān)鍵問題:爬蟲效率。目前爬蟲效率的問題主要體現(xiàn)在:網(wǎng)絡(luò)的帶寬利用率低、爬蟲的模塊功能設(shè)計性較差。網(wǎng)絡(luò)的帶寬問題,一來隨著電信等網(wǎng)絡(luò)運(yùn)營商的不斷發(fā)展,帶寬在可預(yù)見的將來是有望增加的,這時帶寬的利用率不再那么重要了,因為原本的帶寬已經(jīng)相當(dāng)大了;二是可以采用并發(fā)工作流作為設(shè)計,以此盡可能充分地利用網(wǎng)絡(luò)帶寬資源。至于模塊功能的設(shè)計性較差,可以在網(wǎng)絡(luò)爬取模塊的工作流程上進(jìn)行優(yōu)化,減少因任務(wù)等待而造成時間浪費(fèi),在網(wǎng)頁解析模塊進(jìn)行優(yōu)化,減少重復(fù)采集工作。這些技術(shù)已經(jīng)發(fā)展得越來越成熟。

網(wǎng)絡(luò)爬蟲技術(shù)有一個尚未解決的難點(diǎn):如何將不同的爬蟲系統(tǒng),統(tǒng)一到一個爬蟲平臺。這樣的整合要使得它們的爬蟲效果有一加一大于二的效果。

這幾年,Internet ,尤其是互聯(lián)網(wǎng),在令人難以想象的速度發(fā)展,以至于有些膾炙人口的句子:這是一個豬都會飛的時代。信息的增長何嘗不是讓人難以想象。越來越多人在互聯(lián)網(wǎng)上發(fā)布信息,發(fā)表自己的見解,也越來越多人需要找到有效的信息。而Web 是無結(jié)構(gòu)的、動態(tài)的,這是爬蟲技術(shù)發(fā)展的動力是巨大的。在如此巨大的動力推動下,加之目前所了解到爬蟲技術(shù)現(xiàn)狀,我相信,爬蟲技術(shù)還有相當(dāng)大發(fā)展的空間。畢竟Google 在我寫這篇文章時,還沒有把每個IP 的location 可爬取技術(shù)公布出來。

4. 總結(jié)

我在這篇文章主要針對爬蟲的效率問題,講解了分布式爬蟲的相關(guān)技

《 下一代互聯(lián)網(wǎng)技術(shù) 》試卷 卷 第 10 頁 共 15 頁

標(biāo)簽: