網(wǎng)絡(luò )爬蟲(chóng)的設計與實(shí)現
優(yōu)采云 發(fā)布時(shí)間: 2020-07-02 08:01第11卷第4期2012年 4月軟件導刊Software Guide Vo l. ll NO.4 組己旦2網(wǎng)路爬蟲(chóng)的設計與實(shí)*敏*感*詞*鵬(貴州|民族學(xué)院計算機與信息工程學(xué)院,貴州l 貴陽(yáng) 550025)摘 要:搜索引擎技術(shù)隨著(zhù)互聯(lián)網(wǎng)的日漸壯大而急速發(fā)展。作為搜索引擎不可或缺的組成部分,網(wǎng)絡(luò )爬蟲(chóng)的作用變得尤為重要網(wǎng)絡(luò )爬蟲(chóng)設計,它的性能直接決定了在龐大的互聯(lián)網(wǎng)上進(jìn)行網(wǎng)頁(yè)信息采集的質(zhì)量。設計并實(shí)現了通用爬蟲(chóng)和限定爬蟲(chóng)。關(guān)鍵詞:網(wǎng)絡(luò )爬蟲(chóng);通用爬蟲(chóng);限定爬蟲(chóng)中圖分類(lèi)號 :TP393 文獻標識碼 :A。哥|言網(wǎng)路爬蟲(chóng)稱(chēng)作網(wǎng)路蜘蛛,它為搜索引擎從萬(wàn)維網(wǎng)上下載網(wǎng)頁(yè),并順著(zhù)網(wǎng)頁(yè)的相關(guān)鏈接在 Web 中采集資源,是一個(gè)功能太強的網(wǎng)頁(yè)手動(dòng)抓取程序,也是搜索引擎的重要組成部份,爬蟲(chóng)設計的優(yōu)劣直接決定著(zhù)整個(gè)搜索引擎的性能及擴充能力。網(wǎng)絡(luò )爬蟲(chóng)根據系統結構和實(shí)現技術(shù),大致可以分為:通用網(wǎng)路爬蟲(chóng)、主題網(wǎng)路爬蟲(chóng)、增量式網(wǎng)路爬蟲(chóng)、深層網(wǎng)路爬蟲(chóng) o 實(shí)際應用中一般是將幾種爬蟲(chóng)技術(shù)相結合。1 通用爬蟲(chóng)的設計與實(shí)現1. 1 工作原理通用網(wǎng)路爬蟲(chóng)按照預先設定的一個(gè)或若干初始*敏*感*詞*URL 開(kāi)始,以此獲得初始網(wǎng)頁(yè)上的 URL 列表,在爬行過(guò)程中不斷從 URL 隊列中獲一個(gè)個(gè)的 URL,進(jìn)而訪(fǎng)問(wèn)并下載該頁(yè)面。
頁(yè)面下載后頁(yè)面解析器除去頁(yè)面上的 HTML標記后得到頁(yè)面內容,將摘要、URL 等信息保存到 Web數據庫中,同時(shí)抽取當前頁(yè)面上新的 URL,保存到 URL隊列,直到滿(mǎn)足系統停止條件。其原理如圖 1 所示。1. 2 爬行策略為提升工作效率,通用網(wǎng)路爬蟲(chóng)會(huì )采取一定的爬行策略?xún)?yōu)先爬取重要的網(wǎng)頁(yè)。常用的有深度優(yōu)先和長(cháng)度優(yōu)先策略。寬度優(yōu)先算法的設計和實(shí)現相對簡(jiǎn)單,可以覆蓋盡可能多的網(wǎng)頁(yè)網(wǎng)絡(luò )爬蟲(chóng)設計,是使用最廣泛的一種爬行策略。一個(gè)爬蟲(chóng)怎樣借助長(cháng)度優(yōu)先遍歷來(lái)抓取網(wǎng)頁(yè)呢?在爬蟲(chóng)中,每個(gè)鏈接對應一個(gè) HTML 頁(yè)面或則其它文件,通常將 HTML 頁(yè)面上的超鏈接稱(chēng)為"子節點(diǎn)"。整個(gè)長(cháng)度優(yōu)文章編號 :1672-7800(2012)001-0136-02先爬蟲(chóng)就是從一系列的*敏*感*詞*節點(diǎn)開(kāi)始,把這種網(wǎng)頁(yè)中的"子節點(diǎn)"提取下來(lái),放到隊列中依次進(jìn)行抓取。被訪(fǎng)問(wèn)過(guò)的節點(diǎn)裝入到另一張表中,過(guò)程如圖 2 所示。新解析出的URL圖 1 通用爬蟲(chóng)工作流程 圖 2 寬度優(yōu)先爬蟲(chóng)過(guò)程1. 3 爬蟲(chóng)隊列設計爬蟲(chóng)隊列設計是網(wǎng)路爬蟲(chóng)的關(guān)鍵。因為爬蟲(chóng)隊列要儲存大量的 URL,所以借助本地數組或則隊列肯定是不夠的,應當找尋一個(gè)性?xún)r(jià)比高的數據庫來(lái)儲存 URL 隊列,Berkeley DB 是目前一種比較流行的內存數據庫。
根據爬蟲(chóng)的特性, Hash 表成為了一種比較好的選擇。但是在使用 Hash 存儲 URL 字符串的時(shí)侯常用 MD5 算法來(lái)對URL 進(jìn)行壓縮。在實(shí)*敏*感*詞*鵬 0989 一) ,男,山西大同人,貴州民族學(xué)院本科生,研究方向為計算機科學(xué)與技術(shù)。第 4 期 王 娟,吳金鵬:網(wǎng)絡(luò )爬蟲(chóng)的設計與實(shí)現 137 其中:① URL Frontier 含有爬蟲(chóng)當前打算抓取的URL;②DNS 解析模塊拿來(lái)解析域名(根據給定的 URL決定從那個(gè) Web 獲取網(wǎng)頁(yè)) ;③解析模塊提取文本和網(wǎng)頁(yè)的鏈接集合;④重復清除模塊決定一個(gè)解析下來(lái)的鏈接是否早已在 URL Fronier 或者是否近來(lái)下載過(guò)。下面通過(guò)實(shí)驗來(lái)比較一下我們設計的爬蟲(chóng)抓取網(wǎng)頁(yè)與原網(wǎng)頁(yè)的對比,見(jiàn)圖 4 、圖 5 。
μ 溢圈圈酷自自" .. ‘';"也明i:::~:.O: ::匯圖 4 原網(wǎng)頁(yè) 圖 5 抓取網(wǎng)頁(yè)通過(guò)比較可以發(fā)覺(jué),由于原網(wǎng)頁(yè)有*敏*感*詞*等多媒體元素,雖然爬蟲(chóng)未能抓取出來(lái)全部?jì)热?,但基本上是一個(gè)完整的爬蟲(chóng)。2 限定爬蟲(chóng)的設計與實(shí)現限定爬蟲(chóng)就是對爬蟲(chóng)所爬取的主機的范圍作一些限制。通常限定爬蟲(chóng)包含以下內容:①限定域名的爬蟲(chóng);②限定爬取層數的爬蟲(chóng);③限定 IP 的抓取;④限定語(yǔ)言的抓取。限定域名的抓取,是一種最簡(jiǎn)單的限定抓取,只須要依照當前 URL 字符串的值來(lái)做出限定即可。限定爬蟲(chóng)爬取的層次要比限定域名更復雜。限定 IP是限定抓取中最難的一部分。通常分為限定特定 IP 和限定某一地區的 IP。限定特定 IP 抓取較為容易,只要通過(guò)URL 就可以獲得主機 IP 地址,如果主機 IP 在被限制的列表中就不抓取。否則正常工作。想要限定 IP 抓取,首先要按照主機字符串獲得 IP 地址。下面我們通過(guò)實(shí)驗來(lái)得到 IP 地址:貴州民族學(xué)院:主機域名: IP 地址 :210.40.132.8貴州大學(xué):主機域名: IP 地址 :210.40.0.58根據 URL 得到 IP 地址以后,就要按照 IP 地址對某一地區的 IP 作出限制。
但是須要有一個(gè) IP 與地區對應的數據庫,網(wǎng)上好多這樣的數據庫都是收費的,在此我們使用的是騰訊公司推出的一款免費數據庫 "QQWry.da t". ,只要輸入 IP 地址就可以查到對應 IP 地址所在的區域。輸入 :210.40.0.58輸出 2貴州省貴陽(yáng)市:貴州大學(xué)輸入: 210.40. 132.8 輸出:貴州省貴陽(yáng)市:貴州民族學(xué)院按照 IP 地址制做一張列表,將限制地區的 IP 地址寫(xiě)入列表,爬蟲(chóng)假如檢查到要抓取的 IP 地址屬于該列表,就舍棄抓取,這樣一個(gè)限定爬蟲(chóng)就完成了。3 結束語(yǔ)本文介紹了爬蟲(chóng)的工作原理,重點(diǎn)介紹了通用爬蟲(chóng)和限定爬蟲(chóng)的設計及實(shí)現,并通過(guò)實(shí)驗證明本文設計的爬蟲(chóng)可以達到預期療效。參考文獻:[lJ 孫立偉,何國輝,吳禮發(fā).網(wǎng)絡(luò )爬蟲(chóng)技術(shù)的研究[J].電腦知識與技術(shù), 20100日.[2J 于成龍,于洪波.網(wǎng)絡(luò )爬蟲(chóng)技術(shù)研究[J].東莞理工學(xué)院學(xué)報, 2011(3). [3J 羅剛.自己動(dòng)手寫(xiě)搜索引擎[M]. 北京:電子工業(yè)出版社, 2009.[4J 唐潑.網(wǎng)絡(luò )爬蟲(chóng)的設計與實(shí)現[J].電腦知識與技術(shù), 2009( 1).[5J 龔勇.搜索引擎中網(wǎng)路爬蟲(chóng)的研究[DJ. 武漢:武漢理工大學(xué), 2010.(責任編輯 2 杜能鋼)The Design and Implementation of 飛布eb Crawler Abstract: With the growing of Internet , search engine technology develops rapidly. As an indispensable part of search en-gine , web crawler is particularly important , its p巳rformance directly determines the quality of gathering webpage informa tion in large Internet . This paper designs and implements general crawler and limitative crawler. Key Words: Web Crawler; General Crawler; Limitative Crawler


