張立鑒
(保山中醫(yī)藥高等專科學(xué)校 云南 保山 678000)
互聯(lián)網(wǎng)上當(dāng)前大多數(shù)信息內(nèi)容都呈現(xiàn)在網(wǎng)頁上,網(wǎng)頁通常用HTML描述,其中包含非結(jié)構(gòu)化數(shù)據(jù),例如文本、圖像、視頻和音頻。因此,現(xiàn)有的適合處理結(jié)構(gòu)化數(shù)據(jù)的應(yīng)用程序很難直接使用網(wǎng)頁上的數(shù)據(jù)??梢允謩邮占瘮?shù)據(jù),并且可以根據(jù)預(yù)定義的格式對從互聯(lián)網(wǎng)收集的各種信息進(jìn)行分類和轉(zhuǎn)換。在互聯(lián)網(wǎng)相對較小范圍地進(jìn)行收集信息,這種手動收集方法是可取的。
網(wǎng)絡(luò)爬蟲是一種自動搜集網(wǎng)頁信息的技術(shù)。這是搜索引擎在萬維網(wǎng)上下載網(wǎng)頁的關(guān)鍵鏈接。對于傳統(tǒng)的抓取東西,它從一個或幾個原始頁面的URL開始,將鏈接集成到原始頁面中,并且在搜集網(wǎng)頁信息期間,當(dāng)前頁面將獲取新鏈接并將其放置在行列中,直到滿足系統(tǒng)識別的要求[1]。對于集群爬蟲,操作過程相對繁瑣。它必須依據(jù)建立的網(wǎng)絡(luò)研究算法過濾或消除與主題內(nèi)容不相關(guān)的URL,保存所需的URL,然后將保存的URL放入鏈接行列中等候搜集。然后,依據(jù)特定的搜索方法選擇行列中的下一個網(wǎng)頁鏈接,并重復(fù)上述過程,直到系統(tǒng)滿意特定的停止。查詢和檢索完成后,將對爬蟲進(jìn)行研究和總結(jié),并在反饋后繼續(xù)對收集任務(wù)起到一定的指導(dǎo)作用。
信息提?。↖E)的目標(biāo)是分析亞自然語言文檔,從中提取有效數(shù)據(jù),并促進(jìn)結(jié)構(gòu)化存儲[2]。IE系統(tǒng)通過一系列信息提取規(guī)則和提取模式來確定自然語言文檔中的有效信息。該技術(shù)有利于從大量復(fù)雜數(shù)據(jù)中提取有效的關(guān)鍵信息。Web中的信息分散且凌亂,涉及生產(chǎn)和生活的各個方面。相似的信息通常出現(xiàn)在不同的網(wǎng)站上,并且表達(dá)形式也不同。使用該信息提取技術(shù)可以有效地提取由爬蟲收集的信息,以進(jìn)行數(shù)據(jù)的結(jié)構(gòu)化存儲。
Web信息提取(簡稱為WebIE)是一種使用Web作為信息源的信息提取。Web文件是半結(jié)構(gòu)化的數(shù)據(jù)類型,并且是Web信息挖掘的數(shù)據(jù)源[3]?;趥鹘y(tǒng)信息提取技術(shù)的Web信息提取,同時開發(fā)滿足Web信息提取業(yè)務(wù)需求的相關(guān)技術(shù),并構(gòu)建半結(jié)構(gòu)化Web文檔信息處理,以方便其他業(yè)務(wù)程序的數(shù)據(jù)調(diào)用。
信息提取是從非結(jié)構(gòu)化或半結(jié)構(gòu)化的信息中提取用戶感興趣的內(nèi)容,然后將結(jié)果轉(zhuǎn)換成更結(jié)構(gòu)化、更具體的數(shù)據(jù)格式的進(jìn)程[4]。該技術(shù)首先選擇預(yù)界說的規(guī)矩信息,然后從自然言語描繪文本中提取特定的信息,之后將提取的信息以結(jié)構(gòu)化的方式存儲,供用戶查詢和運(yùn)用。信息輸入文件的方式可以有多種方式,但提取的數(shù)據(jù)有必要具有結(jié)構(gòu)化、統(tǒng)一的方式。Web信息提取是從Web中提取信息的信息源。目前,互聯(lián)網(wǎng)上的大多數(shù)數(shù)據(jù)都是用HTML描繪的,每個Web頁面都是半結(jié)構(gòu)化的。半結(jié)構(gòu)化數(shù)據(jù)是言語的相應(yīng)數(shù)據(jù)結(jié)構(gòu)不能自由描繪,而是全局一致的。一個分區(qū)有一個數(shù)據(jù)點(diǎn),每個分區(qū)段運(yùn)用第一個分區(qū)的語義信息,該語義信息可以為n+1[5]。獲得局部統(tǒng)一分段的上下文無關(guān)文法作為半結(jié)構(gòu)化數(shù)據(jù)。這種格式的數(shù)據(jù)沒有特定的形式和完整的語義,并且不能被程序使用,這將不可避免地導(dǎo)致資源浪費(fèi)。Web信息提取的任務(wù)是從大量的半結(jié)構(gòu)化網(wǎng)頁中識別并提取用戶的真實(shí)興趣內(nèi)容,然后通過正則化獲取結(jié)構(gòu)化數(shù)據(jù)。將海量互聯(lián)網(wǎng)數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫,方便人們查詢和使用。
JSoup是一個基于Java的HTML解析器,它為用戶提供了十分方便的內(nèi)容提取接口。該接口能夠直接從URL地址、字符串或文件解析相應(yīng)的HTML頁面內(nèi)容。JSoup[6-7]是在MIT答應(yīng)下發(fā)布的,因而能夠安全地用于商業(yè)項(xiàng)目。JSoup與jQuery有很多共同點(diǎn),它還供給了強(qiáng)壯的選擇和管道API。它在使用方式上也與普通JavaScript有一些相似之處,這使得初學(xué)者能夠方便、快速地了解它。通常,HTML符號元素由3部分組成:符號名稱、屬性和內(nèi)容。JSoup經(jīng)過供給十分簡潔的API(經(jīng)過DOM/CSS提取和操作數(shù)據(jù))和類似于jQuery的選擇器語法來保持自身的精簡[8]。JSoup的主要長處是使用起來十分簡略,類似于使用JavaScript操作頁面DOM目標(biāo)。對于有JavaScript應(yīng)用程序經(jīng)驗(yàn)的開發(fā)人員來說,它是直觀且了解的。當(dāng)涉及到符號檢索和定位時,JSoup供給了一個功能強(qiáng)壯的選擇器,它幾乎能夠做任何事情。
對于傳統(tǒng)的爬蟲,無論頁面中的所有鏈接是否滿足用戶需求,都將在其工作期間對其進(jìn)行處理,這與主題爬蟲完全不同。在特定的爬網(wǎng)過程中,主題爬網(wǎng)程序更傾向于首先識別要爬網(wǎng)的頁面。對于與主題相關(guān)性非常低的那些頁面,主題爬蟲認(rèn)為某些特征詞可能僅偶爾出現(xiàn),而這些偶然出現(xiàn)的特征詞和候選主題之間的并行連接并不大,即使兩者之間沒有相關(guān)性,并且其中的鏈接對最終搜索結(jié)果的外觀沒有任何意義。因此,為了確保由主題爬蟲收集的頁面的主題與指定的主題相關(guān),必須預(yù)先設(shè)置特定的閾值,并且在處理鏈接之前,必須根據(jù)閾值刪除不太相關(guān)的頁面,以防止主題爬網(wǎng)程序在后續(xù)處理中爬網(wǎng)。此鏈接可進(jìn)一步提高收集網(wǎng)頁的準(zhǔn)確性。
主題爬蟲的目標(biāo)是根據(jù)抓取的網(wǎng)頁內(nèi)容對文本內(nèi)容進(jìn)行分類,方便垂直搜索引擎對不同類別的文本簡歷進(jìn)行索引和檢索關(guān)鍵詞。由于垂直搜索引擎的Web爬蟲應(yīng)用場景廣泛,要求Web爬蟲具有良好的可擴(kuò)展性,根據(jù)不同的應(yīng)用場景修改配置文件,滿足不同場景的應(yīng)用需求[9]。
關(guān)于垂直搜索引擎,網(wǎng)絡(luò)爬蟲的方針一般是包括格式化數(shù)據(jù)的網(wǎng)頁,例如中關(guān)村在線的具體電子信息頁面、新浪博客的博客帖子頁面等。一般,此類網(wǎng)頁具有類似的URL組成規(guī)矩,而且每個對應(yīng)的文章將對應(yīng)一個包括文章ID的鏈接。這樣,能夠通過總結(jié)URL銜接規(guī)矩來編寫與URL相對應(yīng)的正則表達(dá)式。一般來說,爬蟲的方針網(wǎng)頁將包括其他方針網(wǎng)頁和一些不相關(guān)的網(wǎng)頁,能夠通過URL的正則表達(dá)式刪除不相關(guān)的網(wǎng)頁,僅保存能夠匹配該正則表達(dá)式的方針網(wǎng)頁。URL過濾辦法是垂直搜索引擎的網(wǎng)絡(luò)爬蟲中常用的網(wǎng)頁過濾辦法。在實(shí)踐應(yīng)用中,爬蟲任務(wù)或許需求獲取滿意多個規(guī)矩的URL。因此,系統(tǒng)將需求以列表方式匹配URL正則表達(dá)式,并在程序運(yùn)行時將它們寫入程序。
此外,在Herritrix中,不同的下載工具有不同的作用。Mirror Writer Processor能夠依據(jù)URL鏈接將方針Web頁面的源代碼保存到作業(yè)中的適當(dāng)目錄中。Arc Writer Processor:將方針網(wǎng)頁保存為ARC文件。因?yàn)樵诒疚囊?guī)劃的網(wǎng)絡(luò)爬蟲中,系統(tǒng)需要從爬蟲下載的方針網(wǎng)頁中剖析并獲取相應(yīng)的格式化數(shù)據(jù)。因此,主題爬蟲程序在herrix配置文件中將Writer Processor指定為mirror writer processor。當(dāng)網(wǎng)絡(luò)爬蟲完成所需的工作后,體系就能夠進(jìn)行網(wǎng)頁信息抽取和文本分類的過程。在Web文本抽取過程中,結(jié)構(gòu)化網(wǎng)頁所對應(yīng)的結(jié)構(gòu)化信息能夠很好地體現(xiàn)在網(wǎng)頁的源代碼中。結(jié)構(gòu)化數(shù)據(jù)對應(yīng)于特定的HTML符號,通過標(biāo)簽匹配和標(biāo)簽去除來實(shí)現(xiàn)結(jié)構(gòu)化的數(shù)據(jù)提取。
在網(wǎng)站信息采集技術(shù)的實(shí)際應(yīng)用過程中,不僅可以保證對主要網(wǎng)站信息的及時有效的采集、收集和利用,還可以結(jié)合實(shí)際情況對這些信息進(jìn)行分類和整合,并對這些信息進(jìn)行匯總和歸納。最后,所有內(nèi)容都記錄在一個統(tǒng)一的數(shù)據(jù)庫中。這不僅可以保證該信息在實(shí)際應(yīng)用過程中的真實(shí)性和有效性,而且可以提高該信息的整體利用率。網(wǎng)絡(luò)爬蟲科學(xué)合理地使用了網(wǎng)站信息收集技術(shù),在某種程度上可以認(rèn)為該技術(shù)是網(wǎng)絡(luò)爬蟲的中心。但是,在該技術(shù)的實(shí)際應(yīng)用過程中,僅依靠網(wǎng)絡(luò)爬蟲進(jìn)行操作就難以保證信息收集任務(wù)的有效實(shí)施。因此,在這種情況下,必須將其與實(shí)際情況相結(jié)合,尤其是與其他技術(shù)的有效集成操作。這不僅可以從根本上保證網(wǎng)絡(luò)爬蟲在實(shí)際應(yīng)用過程中的效果,而且可以在實(shí)際應(yīng)用過程中提高網(wǎng)站信息收集技術(shù)的效率和質(zhì)量。
互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展使得搜索引擎技術(shù)變得越來越重要。網(wǎng)絡(luò)爬蟲是搜索引擎的重要組成部分,相應(yīng)的技術(shù)主要會集在分布式Web爬蟲的技術(shù)和功能實(shí)現(xiàn)的檢測上。依托一臺機(jī)器的網(wǎng)絡(luò)爬蟲已經(jīng)不能滿足用戶在信息收集過程中的需求,這就推動了分布式網(wǎng)絡(luò)爬蟲技術(shù)的實(shí)現(xiàn)。通過構(gòu)建分布式系統(tǒng),可以在大數(shù)據(jù)的支持下提高網(wǎng)絡(luò)爬蟲的數(shù)據(jù)收集速度和存儲性能。