專利名稱:一種通過鏈接快速識別網(wǎng)頁類型的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域,尤其涉及一種通過鏈接快速識別網(wǎng)頁類型的方法。本發(fā)明還涉及一種用于實(shí)現(xiàn)上述方法的系統(tǒng)。
背景技術(shù):
網(wǎng)絡(luò)蜘蛛(Spider),是搜索引擎自動抓取網(wǎng)頁的程序,它從網(wǎng)站的某個頁面(通常是首頁)開始,讀取網(wǎng)頁的內(nèi)容,找到在網(wǎng)頁中的其他鏈接地址,通過這些鏈接地址尋找下一個網(wǎng)頁,如此循環(huán),直到抓取完這個網(wǎng)站的所有網(wǎng)頁。利用上述原理,網(wǎng)絡(luò)蜘蛛可以把互聯(lián)網(wǎng)上所有的網(wǎng)頁都抓取下來。但是,由于互聯(lián)網(wǎng)上的網(wǎng)頁數(shù)量非常龐大,而一個網(wǎng)絡(luò)蜘蛛在給定的時間內(nèi)能夠抓取的網(wǎng)頁數(shù)量是有限的,并且對于網(wǎng)絡(luò)蜘蛛的某個特定應(yīng)用來說,只需要抓取互聯(lián)網(wǎng)中它所需要的極小一部分的內(nèi)容,因此,如何對網(wǎng)絡(luò)蜘蛛進(jìn)行有效的調(diào)度,在有限的時間內(nèi)集中抓取到所需要的網(wǎng)頁,就顯得非常關(guān)鍵了。在名稱為“一種篩選網(wǎng)頁上鏈接的方法和裝置”的中國發(fā)明專利申請(申請?zhí)?CN200810071574. 2)中,公開了一種提高網(wǎng)絡(luò)蜘蛛工作效率的方法,該方法將鏈接拆分為域名部分和相對路徑部分,分析域名與搜索任務(wù)網(wǎng)站的域名相同的鏈接的相對路徑,提取出與搜索任務(wù)網(wǎng)站相關(guān)的鏈接,過濾掉無關(guān)的鏈接。但是,由于這種方法需要首先下載網(wǎng)頁并進(jìn)行分析,這將導(dǎo)致系統(tǒng)大量資源被占用,而且,該方法要求鏈接中必須包含有指定的特征字符串才能進(jìn)行識別,因此,該方法的通用性不高。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種通過鏈接快速識別網(wǎng)頁類型的方法,它可以不下載網(wǎng)頁而快速識別出網(wǎng)頁的類型。為解決上述技術(shù)問題,本發(fā)明的通過鏈接快速識別網(wǎng)頁類型的方法,包括以下步驟1)構(gòu)建鏈接歸一詞典,將所需網(wǎng)頁類型和對應(yīng)的鏈接歸一規(guī)則及歸一字符串保存到該鏈接歸一詞典中;2)從網(wǎng)絡(luò)蜘蛛已經(jīng)抓取的網(wǎng)頁中提取出所有鏈接;3)到鏈接歸一詞典中讀取歸一字符串,從中提取出前綴字符串;4)判斷步驟2)的鏈接中是否包含有步驟3)的前綴字符串,若有,則到鏈接歸一詞典中找出該前綴字符串對應(yīng)的歸一字符串、歸一規(guī)則和網(wǎng)頁類型,轉(zhuǎn)到步驟5);若沒有,則轉(zhuǎn)到步驟幻,處理下一條鏈接;5)根據(jù)步驟4)的歸一規(guī)則,生成該鏈接的歸一字符串,并與步驟4)的歸一字符串進(jìn)行比對,若相同,則將步驟4)的網(wǎng)頁類型賦給該鏈接,并將該鏈接傳給網(wǎng)絡(luò)蜘蛛;若不同,則放棄該鏈接;6)重復(fù)步驟2、至幻,直至網(wǎng)絡(luò)蜘蛛完成全部抓取工作。
所述步驟1)中,歸一字符串的生成方法,包括以下步驟分析所需網(wǎng)頁類型的鏈接命名規(guī)律;將鏈接按照指定分隔符分段切分成字符子串;對鏈接中發(fā)生變化部分的字符子串進(jìn)行歸一,并保存歸一字符串。所述歸一方法是將字符劃分為數(shù)字、字母和其他字符三種,分別用不同的歸一字符表示;連續(xù)多個相同的歸一字符合并。所述歸一規(guī)則至少包含有一個子規(guī)則,每個子規(guī)則對應(yīng)一個字符子串,并記錄有該字符子串的歸一類型。歸一類型分為數(shù)字串的歸一、字母串的歸一和其他字符串的歸一, 分別用不同的字符表示。所述步驟幻中,提取前綴字符串的方法是在歸一字符串中,從左至右,檢測字符 @、#或&出現(xiàn)的位置,以這三類字符首次出現(xiàn)的位置為尾部,截斷該歸一字符串,保存在前綴字符串中。本發(fā)明要解決的另一技術(shù)問題是提供一種用于實(shí)現(xiàn)上述方法的系統(tǒng)。為解決上述技術(shù)問題,本發(fā)明的通過鏈接快速識別網(wǎng)頁類型的系統(tǒng),包括鏈接歸一詞典,用于保存所需網(wǎng)頁類型及其對應(yīng)的鏈接歸一規(guī)則和歸一字符串;鏈接提取模塊,用于從網(wǎng)絡(luò)蜘蛛已經(jīng)抓取的網(wǎng)頁中提取出鏈接;前綴提取模塊,用于從鏈接歸一詞典中讀取歸一字符串,并從該歸一字符串中提取出前綴字符串;類型預(yù)判模塊,用于根據(jù)該前綴字符串初步判斷該鏈接的類型,并在判斷結(jié)果為有效頁面時,將鏈接歸一詞典中該前綴字符串對應(yīng)的歸一字符串、歸一規(guī)則和網(wǎng)頁類型,傳給類型判別模塊。類型判別模塊,用于根據(jù)類型預(yù)判模塊傳入的歸一規(guī)則,生成該鏈接的歸一字符串,和類型預(yù)判模塊傳入的歸一字符串比對,判斷出該鏈接的類型,并將判斷結(jié)果為有效的鏈接傳給網(wǎng)絡(luò)蜘蛛。與現(xiàn)有方法相比,本發(fā)明的識別網(wǎng)頁類型的方法及系統(tǒng),不需要對網(wǎng)頁進(jìn)行下載和分析,只需要通過網(wǎng)頁的鏈接地址,就可以快速判斷出網(wǎng)頁的類型,從而使網(wǎng)絡(luò)蜘蛛能夠在有限的時間內(nèi)集中抓取所需要的網(wǎng)頁,提高了網(wǎng)絡(luò)蜘蛛的工作效率。
下面結(jié)合附圖與具體實(shí)施方式
對本發(fā)明作進(jìn)一步詳細(xì)的說明圖1是本發(fā)明的系統(tǒng)結(jié)構(gòu)圖;圖2是本發(fā)明的方法流程圖。
具體實(shí)施例方式為對本發(fā)明的技術(shù)內(nèi)容、特點(diǎn)與功效有更具體的了解,現(xiàn)結(jié)合圖示的實(shí)施方式,詳述如下本發(fā)明首先需要構(gòu)建一個鏈接歸一詞典,用于記錄各網(wǎng)頁類型所需要的鏈接 (url)歸一方式。具體方法如下首先,對每個待抓取的網(wǎng)站,分析所需抓取的網(wǎng)頁類型的url命名規(guī)律。例如,博庫網(wǎng)(www.bookuu.com)的所有書籍展示頁(contentpage)的url,都是形如http//www. bookuu. com/kgsm/ts/2010/07/13/1786270. shtmlhttp//www. bookuu. com/kgsm/ts/2010/09/21/1827795. shtmlhttp://www. bookuu. com/kgsm/ts/2009/12/08/1644478. shtml即url中,前綴相同,某些部分(上例中為最后的數(shù)字串)發(fā)生變化。然后,根據(jù)分析出的命名規(guī)律,將url中代表站點(diǎn)部分的字符串(例如,www. bookuu. com)去掉,剩下的字符串按照指定的分隔符,分段切分成字符子串,分隔符可以是字符.,=? &/-_#中的任意一種。例如,對url http//www. bookuu. com/kgsm/ts/2010/07/13/1786270. shtml分段切分后,可以獲得以下6個字符字串1 :kgsm2 :ts3 :20104 075 136 :1786270接著,對需要?dú)w一(即url中發(fā)生變化部分)的字符子串,按照如下方法,進(jìn)行歸一操作,提取出歸一字符串,并保存到Norm_str中數(shù)字歸一為字符@ ;字母歸一為字符# ;其他字符歸一為字符& ;連續(xù)多個相同歸一字符合并。再根據(jù)歸一字符串,按照如下方法,得到對應(yīng)的歸一規(guī)則數(shù)字串的歸一用字母d表示;字母串的歸一用字母c表示;其他字符串的歸一用字母a表示;每個字符子串對應(yīng)一個歸一子規(guī)則,每個子規(guī)則用“字符子串的序號歸一類型” 的方式表示,多個子規(guī)則之間用符號I分隔。將歸一字符串Norm_str、歸一規(guī)則和對應(yīng)的網(wǎng)頁類型保存到鏈接歸一詞典中,如此,即構(gòu)建完成一個鏈接歸一詞典。例如,對博庫網(wǎng)的書籍展示頁來說,歸一字符串Norm_ str 為http//www. bookuu. com/kgsm/ts/i/i/i/i. shtml對應(yīng)的歸一規(guī)則為3:d|4:d|5:d|6:d最后生成的歸一鏈接詞典為
權(quán)利要求
1.一種通過鏈接快速識別網(wǎng)頁類型的方法,其特征在于,包括以下步驟1)構(gòu)建鏈接歸一詞典,將所需網(wǎng)頁類型和對應(yīng)的鏈接歸一規(guī)則及歸一字符串保存到該鏈接歸一詞典中;2)從網(wǎng)絡(luò)蜘蛛已經(jīng)抓取的網(wǎng)頁中提取出所有鏈接;3)到鏈接歸一詞典中讀取歸一字符串,從中提取出前綴字符串;4)判斷步驟2)的鏈接中是否包含有步驟3)的前綴字符串,若有,則到鏈接歸一詞典中找出該前綴字符串對應(yīng)的歸一字符串、歸一規(guī)則和網(wǎng)頁類型,轉(zhuǎn)到步驟5);若沒有,則轉(zhuǎn)到步驟幻,處理下一條鏈接;5)根據(jù)步驟4)的歸一規(guī)則,生成該鏈接的歸一字符串,并與步驟4)的歸一字符串進(jìn)行比對,若相同,則將步驟4)的網(wǎng)頁類型賦給該鏈接,并將該鏈接傳給網(wǎng)絡(luò)蜘蛛;若不同,則放棄該鏈接;6)重復(fù)步驟幻至幻,直至網(wǎng)絡(luò)蜘蛛完成全部抓取工作。
2.如權(quán)利要求1所述的識別網(wǎng)頁類型的方法,其特征在于,所述步驟1)中,歸一字符串的生成方法,包括以下步驟分析所需網(wǎng)頁類型的鏈接命名規(guī)律;將鏈接按照指定分隔符分段切分成字符子串;對鏈接中發(fā)生變化部分的字符子串進(jìn)行歸一,并保存歸一字符串。
3.如權(quán)利要求2所述的識別網(wǎng)頁類型的方法,其特征在于所述分隔符為字符.,= &/-_#中的任意一種。
4.如權(quán)利要求2所述的識別網(wǎng)頁類型的方法,其特征在于,所述歸一的方法,包括以下步驟將字符劃分為數(shù)字、字母和其他字符三種,分別用不同的歸一字符表示;連續(xù)多個相同的歸一字符合并。
5.如權(quán)利要求2所述的識別網(wǎng)頁類型的方法,其特征在于所述歸一規(guī)則至少包含有一個子規(guī)則,每個子規(guī)則對應(yīng)一個字符子串,并記錄有該字符子串的歸一類型。
6.如權(quán)利要求5所述的識別網(wǎng)頁類型的方法,其特征在于,所述歸一類型分為三種數(shù)字串的歸一、字母串的歸一和其他字符串的歸一,分別用不同的字符表示。
7.如權(quán)利要求1所述的識別網(wǎng)頁類型的方法,其特征在于,所述步驟幻中,提取鏈接的方法是在頁面內(nèi)尋找以字符串<a href =“開始,以字符串" > 結(jié)束的部分,從中提取出鏈接。
8.如權(quán)利要求1所述的識別網(wǎng)頁類型的方法,其特征在于,所述步驟3)中,提取前綴字符串的方法,包括以下步驟在歸一字符串中,從左至右,檢測字符@、#或&出現(xiàn)的位置,以這三類字符首次出現(xiàn)的位置為尾部,截斷該歸一字符串,保存在前綴字符串中。
9.一種通過鏈接快速識別網(wǎng)頁類型的系統(tǒng),用于實(shí)現(xiàn)權(quán)利要求1所述的方法,其特征在于,包括有鏈接歸一詞典,用于保存所需網(wǎng)頁類型及其對應(yīng)的鏈接歸一規(guī)則和歸一字符串;鏈接提取模塊,用于從網(wǎng)絡(luò)蜘蛛已經(jīng)抓取的網(wǎng)頁中提取出鏈接;前綴提取模塊,用于從鏈接歸一詞典中讀取歸一字符串,并從該歸一字符串中提取出前綴字符串;類型預(yù)判模塊,用于根據(jù)該前綴字符串初步判斷該鏈接的類型,并在判斷結(jié)果為有效頁面時,將鏈接歸一詞典中該前綴字符串對應(yīng)的歸一字符串、歸一規(guī)則和網(wǎng)頁類型,傳給類型判別模塊;類型判別模塊,用于根據(jù)類型預(yù)判模塊傳入的歸一規(guī)則,生成該鏈接的歸一字符串,和類型預(yù)判模塊傳入的歸一字符串比對,判斷出該鏈接的類型,并將判斷結(jié)果為有效的鏈接傳給網(wǎng)絡(luò)蜘蛛。
全文摘要
本發(fā)明公開了一種通過鏈接快速識別網(wǎng)頁類型的方法,包括步驟1)構(gòu)建鏈接歸一詞典;2)提取鏈接;3)讀取鏈接歸一詞典,生成前綴字符串;4)快速預(yù)判鏈接前綴類型;5)判別鏈接類型;6)有效鏈接傳給網(wǎng)絡(luò)蜘蛛。本發(fā)明還公開了實(shí)現(xiàn)上述方法的系統(tǒng),包括鏈接歸一詞典、鏈接提取模塊、前綴提取模塊、類型預(yù)判模塊以及類型判別模塊。該系統(tǒng)及方法利用網(wǎng)頁鏈接地址的命名規(guī)律,從鏈接地址中提取出前綴字符串和歸一字符串,利用字符串之間的比對,快速判斷出網(wǎng)頁的類型,從而提高了網(wǎng)頁類型識別的速度和網(wǎng)絡(luò)蜘蛛的工作效率。
文檔編號G06F17/30GK102567337SQ201010590389
公開日2012年7月11日 申請日期2010年12月15日 優(yōu)先權(quán)日2010年12月15日
發(fā)明者陳運(yùn)文 申請人:盛樂信息技術(shù)(上海)有限公司