馬明陽(yáng) 郭明亮 魏留強(qiáng)
(國(guó)家知識(shí)產(chǎn)權(quán)局專利局專利審查協(xié)作河南中心,河南 鄭州 450000)
網(wǎng)絡(luò)爬蟲技術(shù)是許多互聯(lián)網(wǎng)應(yīng)用的基礎(chǔ)技術(shù)[1],特別是在大數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)挖掘、網(wǎng)絡(luò)取證、信息聚合、輿情監(jiān)控、網(wǎng)頁(yè)快照等領(lǐng)域有非常普遍的應(yīng)用。如果把互聯(lián)網(wǎng)比成一張無(wú)形的巨大網(wǎng)絡(luò),那么網(wǎng)絡(luò)爬蟲就是一只在這張網(wǎng)上爬來(lái)爬去的蟲子,網(wǎng)絡(luò)爬蟲因此得名。一個(gè)網(wǎng)絡(luò)爬蟲的工作過(guò)程,就是從某個(gè)網(wǎng)站中的某一個(gè)頁(yè)面開始,讀取網(wǎng)頁(yè)的HTML內(nèi)容,并在該網(wǎng)頁(yè)中找到其他網(wǎng)頁(yè)的鏈接地址,然后通過(guò)這些鏈接地址尋找下一個(gè)網(wǎng)頁(yè),這樣一直循環(huán)下去,直到把這個(gè)網(wǎng)絡(luò)中所有的網(wǎng)頁(yè)都抓取完為止[2]。如果把整個(gè)互聯(lián)網(wǎng)當(dāng)成一個(gè)網(wǎng)站,那么網(wǎng)絡(luò)爬蟲就可以用這個(gè)原理把互聯(lián)網(wǎng)上所有的網(wǎng)頁(yè)都抓取下來(lái)。在“互聯(lián)網(wǎng)+”時(shí)代,網(wǎng)絡(luò)爬蟲技術(shù)將在云計(jì)算、大數(shù)據(jù)分析、電子商務(wù)、社交網(wǎng)絡(luò)、輿情監(jiān)控等諸多互聯(lián)網(wǎng)前沿技術(shù)領(lǐng)域發(fā)揮重要的作用。
由于互聯(lián)網(wǎng)上目前存在的網(wǎng)頁(yè)數(shù)量超過(guò)百億,網(wǎng)頁(yè)的展現(xiàn)形態(tài)也是不斷出新,導(dǎo)致網(wǎng)絡(luò)爬蟲技術(shù)也面臨著諸多技術(shù)上的難題。
首先,網(wǎng)絡(luò)爬蟲需要解決如何能夠在有限的時(shí)間內(nèi),根據(jù)現(xiàn)有的硬件基礎(chǔ)獲得更全面的數(shù)據(jù)量;并且需要對(duì)采集到的海量網(wǎng)頁(yè)數(shù)據(jù)進(jìn)行有效去重[3],并為海量的網(wǎng)頁(yè)數(shù)據(jù)提供高效的存儲(chǔ)和查詢方式。
其次,由于多線程并發(fā)執(zhí)行的網(wǎng)絡(luò)爬蟲很可能會(huì)造成服務(wù)器資源的枯竭,導(dǎo)致對(duì)方服務(wù)器出現(xiàn) “拒絕服務(wù)”的情況[4],目前大多數(shù)Web服務(wù)器會(huì)對(duì)網(wǎng)絡(luò)訪問(wèn)請(qǐng)求進(jìn)行過(guò)濾,將短時(shí)間內(nèi)發(fā)出大量訪問(wèn)請(qǐng)求的疑似“機(jī)器人”或網(wǎng)絡(luò)爬蟲拒之門外,導(dǎo)致網(wǎng)絡(luò)爬蟲的暫時(shí)失效。
此外,隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,特別是“深網(wǎng)”的出現(xiàn)和“暗網(wǎng)”和泛濫[5],導(dǎo)致大量有價(jià)值的網(wǎng)絡(luò)頁(yè)面處于常規(guī)網(wǎng)絡(luò)爬蟲無(wú)法獲取到的狀態(tài),這在一定程度上制約了網(wǎng)絡(luò)爬蟲,導(dǎo)致網(wǎng)絡(luò)爬蟲在深網(wǎng)和暗網(wǎng)中無(wú)法正常展開工作。
本文主要基于專利檢索系統(tǒng)平臺(tái)S系統(tǒng),分析網(wǎng)絡(luò)爬蟲技術(shù)的發(fā)展現(xiàn)狀,檢索數(shù)據(jù)庫(kù)為DWPI數(shù)據(jù)庫(kù),采用 web、crawler、spider、robot等關(guān)鍵詞進(jìn)行限 定,得到相關(guān)專利文獻(xiàn)2235篇,檢索日期為2018年5月18日。
在2000-2002年,受互聯(lián)網(wǎng)泡沫破裂的影響,網(wǎng)絡(luò)爬蟲技術(shù)專利的相關(guān)申請(qǐng)量一度出現(xiàn)了將大幅度的下降,至2006年左右,網(wǎng)絡(luò)爬蟲技術(shù)的專利申請(qǐng)量由每年100篇左右快速地增長(zhǎng)至每年150-200篇左右,而到了2016年,網(wǎng)絡(luò)爬蟲技術(shù)的專利申請(qǐng)量達(dá)到了最大值306篇每年。可以看出,目前全球?qū)W(wǎng)絡(luò)爬蟲技術(shù)的研究還處于非?;钴S的時(shí)期。
網(wǎng)絡(luò)爬蟲技術(shù)的主要申請(qǐng)人則集中在美國(guó)、中國(guó)、韓國(guó)、日本、歐洲、德國(guó)等地區(qū),可以看出,中美兩國(guó)在網(wǎng)絡(luò)爬蟲技術(shù)這一技術(shù)領(lǐng)域處于全球領(lǐng)先的地位,這與中美兩國(guó)互聯(lián)網(wǎng)技術(shù)的普遍應(yīng)用,以及互聯(lián)網(wǎng)網(wǎng)絡(luò)技術(shù)的迅速發(fā)展有密切關(guān)系。
其中,IBM(International Business Machine)的專利申請(qǐng) 量 最 大 , 微 軟 (Microsoft)、 雅 虎 (Yahoo)、 谷 歌(Google)等是主要的國(guó)外申請(qǐng)人,而在中國(guó)主要有國(guó)雙科技(Gridsum)阿里巴巴(Alibaba)、奇虎(Qihoo)、百度(Baidu)等專利申請(qǐng)人。
可以看出,互聯(lián)網(wǎng)巨頭們都非常重視網(wǎng)絡(luò)爬蟲技術(shù)的專利申請(qǐng)和保護(hù),這是由于網(wǎng)絡(luò)爬蟲技術(shù)作為互聯(lián)網(wǎng)應(yīng)用的基礎(chǔ)性、關(guān)鍵性技術(shù)而決定的,加強(qiáng)網(wǎng)絡(luò)爬蟲技術(shù)的專利儲(chǔ)備,積極開展網(wǎng)絡(luò)爬蟲技術(shù)領(lǐng)域的專利布局,符合互聯(lián)網(wǎng)巨頭們的發(fā)展利益。
在網(wǎng)絡(luò)爬蟲技術(shù)的發(fā)展過(guò)程中,網(wǎng)絡(luò)爬蟲技術(shù)的發(fā)展方向主要包括了硬件提升、算法改進(jìn)、突破限制、暗網(wǎng)爬蟲等多個(gè)方向。
為了提升網(wǎng)絡(luò)爬蟲的爬取效率,對(duì)實(shí)施爬蟲的硬件做出改進(jìn)是最直接有效的。在硬件改進(jìn)方面,很多申請(qǐng)人引入了分布式系統(tǒng)以增強(qiáng)爬蟲的調(diào)度效率、存儲(chǔ)效率、查詢效率。例如,申請(qǐng)人為美國(guó)微軟公司的申請(qǐng)?zhí)枮?US20030670681的專利申請(qǐng) (申請(qǐng)日期20030925,公開號(hào)為US2005071766A1)利用服務(wù)器的客戶機(jī)的分布式性質(zhì)來(lái)提供快速、準(zhǔn)確的web蠕動(dòng)數(shù)據(jù)。將服務(wù)器的web爬蟲所搜集的信息與該服務(wù)器的客戶機(jī)所檢索的數(shù)據(jù)進(jìn)行比較,以更新該爬蟲的數(shù)據(jù)。該申請(qǐng)通過(guò)利用經(jīng)由搜索引擎結(jié)果網(wǎng)頁(yè)而加以傳播的信息,來(lái)實(shí)現(xiàn)數(shù)據(jù)比較,由概括web爬蟲數(shù)據(jù)的客戶機(jī)詞典(從服務(wù)器發(fā)出)來(lái)實(shí)現(xiàn)數(shù)據(jù)證實(shí)。本發(fā)明也通過(guò)提供用于抵抗web爬蟲的電子欺騙法的方法,以提高數(shù)據(jù)準(zhǔn)確度,來(lái)促進(jìn)數(shù)據(jù)分析。該專利申請(qǐng)不僅通過(guò)分布式的客戶機(jī)提高了網(wǎng)絡(luò)爬蟲的爬取速度,而且由于客戶機(jī)的真實(shí)性和分散性,很好地解決了網(wǎng)絡(luò)爬蟲在短時(shí)間內(nèi)發(fā)出大量訪問(wèn)請(qǐng)求被服務(wù)器認(rèn)定為疑似 “機(jī)器人”而拒之門外,導(dǎo)致網(wǎng)絡(luò)爬蟲的暫時(shí)失效的問(wèn)題。
在對(duì)爬蟲的調(diào)度算法進(jìn)行改進(jìn)時(shí),一項(xiàng)最重要的工作就是去重。由于互聯(lián)網(wǎng)上高熱度網(wǎng)頁(yè)內(nèi)容會(huì)被多次轉(zhuǎn)載,為了避免爬取到重復(fù)的網(wǎng)頁(yè)內(nèi)容,對(duì)爬取內(nèi)容進(jìn)行去重可以極大地提高爬蟲的工作效率。例如,申請(qǐng)人為中國(guó)百度網(wǎng)訊科技有限公司的申請(qǐng)?zhí)枮镃N201310078316的專利申請(qǐng)(申請(qǐng)日期 20130312,公開號(hào)CN103226568A)請(qǐng)求保護(hù)一種用于爬取頁(yè)面的方法和設(shè)備,爬取設(shè)備根據(jù)已爬取頁(yè)面,獲取對(duì)應(yīng)候選爬取頁(yè)面的候選頁(yè)面標(biāo)識(shí)信息;根據(jù)所述候選爬取頁(yè)面與所述已爬取頁(yè)面的關(guān)聯(lián)性信息,將所述候選頁(yè)面標(biāo)識(shí)信息添加至對(duì)應(yīng)的待爬頁(yè)面集合;根據(jù)所述待爬頁(yè)面集合,確定待爬取頁(yè)面的目標(biāo)爬取標(biāo)識(shí)信息;爬取所述目標(biāo)爬取標(biāo)識(shí)信息所對(duì)應(yīng)的目標(biāo)頁(yè)面。與現(xiàn)有技術(shù)相比,該發(fā)明根據(jù)所述關(guān)聯(lián)性信息,有效的避免了重復(fù)爬取相同或相似網(wǎng)頁(yè)、浪費(fèi)系統(tǒng)資源以及爬取效率低下的問(wèn)題,實(shí)現(xiàn)了爬取調(diào)度的可配置性,使得爬取能夠目的地?cái)U(kuò)散,控制爬蟲在網(wǎng)頁(yè)間移動(dòng)的方向和速度,提高了垂直爬蟲的爬取效率。
此外,隨著本領(lǐng)域?qū)?shù)據(jù)保護(hù)的意識(shí)增強(qiáng),多數(shù)大型網(wǎng)站增加了對(duì)爬蟲程序或機(jī)器人程序的識(shí)別檢測(cè),提出了多種相應(yīng)的爬蟲防范策略。對(duì)此,申請(qǐng)人為中國(guó)奇虎科技有限公司的申請(qǐng)?zhí)枮镃N201510901579的專利申請(qǐng)(申請(qǐng)日期20151208,公開號(hào) CN105354337A)請(qǐng)求保護(hù)一種網(wǎng)絡(luò)爬蟲實(shí)現(xiàn)方法,該方法模擬用戶對(duì)網(wǎng)頁(yè)的訪問(wèn)操作發(fā)送網(wǎng)頁(yè)訪問(wèn)請(qǐng)求;根據(jù)網(wǎng)頁(yè)訪問(wèn)請(qǐng)求對(duì)應(yīng)的反饋內(nèi)容獲得相應(yīng)的網(wǎng)頁(yè)內(nèi)容;分析獲得的網(wǎng)頁(yè)內(nèi)容,獲得目標(biāo)信息。通過(guò)該技術(shù)方案實(shí)現(xiàn)的網(wǎng)絡(luò)爬蟲并不直接訪問(wèn)網(wǎng)站服務(wù)器獲取資源,而是通過(guò)模擬正常用戶的網(wǎng)頁(yè)訪問(wèn)請(qǐng)求,在客戶端如瀏覽器獲取到網(wǎng)頁(yè)內(nèi)容,避免了受到網(wǎng)站設(shè)置的robots.txt中對(duì)網(wǎng)絡(luò)爬蟲獲取數(shù)據(jù)內(nèi)容的限制,并且獲取到的內(nèi)容也是通過(guò)正當(dāng)途徑訪問(wèn)網(wǎng)頁(yè)獲取的,既可以滿足用戶爬取數(shù)據(jù)的需求,也不違反網(wǎng)站服務(wù)提供方的約束。
而隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,特別是“深網(wǎng)”的出現(xiàn)和“暗網(wǎng)”的泛濫,導(dǎo)致大量有價(jià)值的網(wǎng)絡(luò)頁(yè)面處于常規(guī)網(wǎng)絡(luò)爬蟲無(wú)法獲取到的狀態(tài),這在一定程度上制約了網(wǎng)絡(luò)爬蟲,導(dǎo)致網(wǎng)絡(luò)爬蟲在深網(wǎng)和暗網(wǎng)中無(wú)法正常展開工作。為此,申請(qǐng)人哈爾濱工業(yè)大學(xué)提出了一種專門面向暗網(wǎng)數(shù)據(jù)采集與抽取的網(wǎng)絡(luò)爬蟲方法(CN107808000A),首先通過(guò)手動(dòng)或自動(dòng)獲取暗網(wǎng) url,構(gòu)筑基于Hadoop+Nutch的分布式爬蟲平臺(tái),配置Tor服務(wù),修改Hutch的配置使其與socks協(xié)議交互,基于Hutch做進(jìn)一步的開發(fā),解決其表單登錄和Cookie登錄的問(wèn)題,采用基于Hadoop+Nutch的分布式爬蟲平臺(tái)爬取暗網(wǎng)url,得到html文檔,對(duì)爬取得到的html文檔依次進(jìn)行數(shù)據(jù)預(yù)處理、頁(yè)面解析樹生成、頁(yè)面結(jié)構(gòu)向量化、hash學(xué)習(xí)與特征碼生成、模板集生成、相似度計(jì)算與模板集更新、頁(yè)面內(nèi)容抽取,采用數(shù)據(jù)對(duì)齊策略對(duì)抽取得到的內(nèi)容重組,同時(shí)將內(nèi)容相近的數(shù)據(jù)記錄融合存入數(shù)據(jù)庫(kù)中。
網(wǎng)絡(luò)爬蟲的原理雖然簡(jiǎn)單,但是網(wǎng)絡(luò)環(huán)境是非常復(fù)雜的,因此,網(wǎng)絡(luò)爬蟲的應(yīng)用必須克服網(wǎng)絡(luò)環(huán)境中的諸多障礙,才能充分發(fā)揮出網(wǎng)絡(luò)爬蟲技術(shù)的能力。在網(wǎng)絡(luò)爬蟲技術(shù)的發(fā)展過(guò)程中,網(wǎng)絡(luò)爬蟲技術(shù)的發(fā)展方向主要包括了硬件提升、算法改進(jìn)、主題爬蟲、突破限制、暗網(wǎng)爬蟲等多個(gè)方向,在這些發(fā)展方向上,網(wǎng)絡(luò)爬蟲越來(lái)越能夠適應(yīng)最新的網(wǎng)絡(luò)環(huán)境,滿足人們多樣化的爬蟲需求。