HTTP請(qǐng)求抓取未抓取的網(wǎng)頁(yè);
[0055]步驟7為本發(fā)明的結(jié)束步驟。
[0056]圖2是對(duì)圖1中有效鏈接獲取階段的具體描述:
[0057]步驟10為起始步驟;
[0058]步驟11初始化網(wǎng)頁(yè)鏈接URL。
[0059]步驟12獲取入口 URL頁(yè)面中所有的鏈接,保存集合PageAllUrl中;
[0060]步驟20通過(guò)匹配PageAllUrl中每個(gè)URL鏈接文本中是否為“下一頁(yè)”或“下頁(yè)”等分頁(yè)標(biāo)志判斷是否具有分頁(yè)。如果匹配成功執(zhí)行步驟30,否則執(zhí)行步驟41 ;
[0061]步驟30為獲取分頁(yè)網(wǎng)頁(yè)中所有的鏈接,保存集合NextPageAlIUrl中;
[0062]步驟31為獲取公共鏈接,方法為比較集合PageAllUrl和集合NextPageAlIUrl,找出它們相同的URL并保存在集合CommonUrl中,即公共鏈接集合CommonUrl =PageAllUrl Π NextPageAllUrl ;
[0063]步驟40為獲取有效鏈接,方法為從集合PageAllUrl中鏈接去掉集合CommonUrl中鏈接,并將結(jié)果保存在集合EffectiveUrl中,即有效鏈接集合EffectiveUrl =PageAlIUrl-CommonUrl ;
[0064]步驟41分析入口 URL鏈接,獲取其主機(jī)域名HostUrl ;
[0065]步驟42判斷集合PageAllUrl是否為空,如果不為空則執(zhí)行步驟43,否則執(zhí)行步驟46 ;
[0066]步驟43從集合PageAllUrl中取出一個(gè)Url ;
[0067]步驟44判斷Url是否是入口 URL的前綴,如果是則執(zhí)行步驟42,否則執(zhí)行步驟45 ;
[0068]步驟45將Url加入有效鏈接集合EffectiveUrl中,執(zhí)行步驟42 ;
[0069]步驟46為結(jié)束步驟。
[0070]圖3是圖1中增量抓取階段的具體描述:
[0071]步驟50為起始步驟;
[0072]步驟51構(gòu)建并初始化布隆過(guò)濾器,其中布隆過(guò)濾器的大小設(shè)置為90000000,誤判率設(shè)置為0.000001,隨機(jī)哈希函數(shù)設(shè)置為MD5Hash ;
[0073]步驟52判斷集合EfTectiveUrl是否為空,非空則執(zhí)行步驟53,否則執(zhí)行步驟62 ;
[0074]步驟53從集合EffectiveUrl中取出一個(gè)Url ;
[0075]步驟54判斷Url是否在BloomFilter中,如果在則執(zhí)行步驟52,否則執(zhí)行步驟60 ;
[0076]步驟60通過(guò)HTTP請(qǐng)求抓取Url鏈接的網(wǎng)頁(yè)信息;
[0077]步驟61將Url保存到BloomFilter中,執(zhí)行步驟52 ;
[0078]步驟62為結(jié)束步驟。
[0079]綜上所述,本發(fā)明采用無(wú)效鏈接過(guò)濾方式獲取有效的網(wǎng)頁(yè)鏈接,并采用布隆過(guò)濾器維持已抓取鏈接集合,通過(guò)鏈接哈希判斷網(wǎng)頁(yè)是否抓取實(shí)現(xiàn)增量抓取。本發(fā)明過(guò)濾無(wú)效鏈接,避免無(wú)效網(wǎng)頁(yè)的抓取,提高抓取效率的同時(shí)也增加抓取信息的準(zhǔn)備率。本發(fā)明采用增量抓取策略不但避免重復(fù)抓取,而且大幅提高網(wǎng)頁(yè)抓取頻率。
[0080]本發(fā)明所屬技術(shù)領(lǐng)域中具有通常知識(shí)者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作各種的更動(dòng)與潤(rùn)飾。因此,本發(fā)明的保護(hù)范圍當(dāng)視權(quán)利要求書(shū)所界定者為準(zhǔn)。
【主權(quán)項(xiàng)】
1.有效鏈接獲取的網(wǎng)頁(yè)增量抓取方法,其特征是包括如下步驟: 1)有效鏈接獲取階段: a初始化抓取網(wǎng)頁(yè)鏈接,指定抓取入口 URL ; b判斷入口網(wǎng)頁(yè)鏈接是否具有分頁(yè); c計(jì)算入口網(wǎng)頁(yè)與其分頁(yè)的公共鏈接; d通過(guò)公共鏈接獲取有效鏈接; e結(jié)束; 2)增量抓取階段: a構(gòu)建布隆過(guò)濾器,并通過(guò)布隆過(guò)濾器判斷步驟l)_d中有效網(wǎng)頁(yè)鏈接是否已經(jīng)抓?。? b通過(guò)HTTP請(qǐng)求抓取未抓取的網(wǎng)頁(yè); c結(jié)束; 步驟I) -a中抓取入口 URL是指抓取程序以此URL開(kāi)始逐層抓取; 步驟l)_b中分頁(yè)是指在網(wǎng)頁(yè)中由于信息太多采用分頁(yè)形式顯示,每一頁(yè)顯示一部分信息;分頁(yè)的具體判斷方法如下: 1)獲取入口URL頁(yè)面中所有的鏈接,保存集合中; 2)通過(guò)匹配中每個(gè)URL鏈接文本中是否為“下一頁(yè)”或“下頁(yè)”等分頁(yè)標(biāo)志來(lái)判斷是否有分頁(yè); 步驟l)-c中公共鏈接是指入口 URL頁(yè)面與其分頁(yè)網(wǎng)頁(yè)中相同的URL,其具體計(jì)算方法如下: 1)獲取入口URL分頁(yè)網(wǎng)頁(yè)中所有的鏈接,保存集合中; 2)比較集合作#^77&7和集合NextPageAllUrl,找出它們相同的URL并保存在集合Cb遞?中,即公共鏈接集合 CoimonUrl=PageAllUrm NextPageAlIUrl; 步驟l)_d中有效鏈接是指非菜單、導(dǎo)航、廣告等無(wú)效鏈接,其具體方法如下: 1)在步驟l)_b中判斷入口URL是否具有分頁(yè),如有執(zhí)行2),否則執(zhí)行3); 2)從集合PageAlIUrI中鏈接去掉集合CommonUr沖鏈接,并將結(jié)果保存在集合Effectiκ<9βτ7中,即有效鏈接集合 EffectiVeUrl=PageAlIUr1-CommonUr 1\ 3)分析入口URL鏈接,獲取其主機(jī)域名HostUrl ; 4)判斷集合作#^77&7是否為空,如果不為空則執(zhí)行5),否則執(zhí)行8); 5)從集合中取出一個(gè)Url' 6)判斷是否是入口URL的前綴,如果是則執(zhí)行7),否則執(zhí)行4); 7)將Cr7加入有效鏈接集合中,執(zhí)行4); 8)結(jié)束。
2.根據(jù)權(quán)利要求1所述的有效鏈接獲取的網(wǎng)頁(yè)增量抓取方法,其特征是 步驟2)-a和2)-b中構(gòu)建布隆過(guò)濾器是指設(shè)定布隆過(guò)濾器的大小、誤判率以及隨機(jī)哈希函數(shù):設(shè)置布隆過(guò)濾器大小為90000000,誤判率為0.000001,隨機(jī)哈希函數(shù)為MD5Hash ;其判斷方法具體如下: 1)初始化布隆過(guò)濾器BloomFilter; 2)判斷集合是否為空,如果不為空則執(zhí)行3),否則執(zhí)行7); 3)從集合中取出一個(gè)UrU4)判斷Cr7是否在BloomFilter中,如果在則執(zhí)行2),否則執(zhí)行5);5)通過(guò)HTTP請(qǐng)求抓取鏈接的網(wǎng)頁(yè)信息;6)將Cr7保存到BloomFilter中,執(zhí)行2);7)結(jié)束。
【專利摘要】有效鏈接獲取的網(wǎng)頁(yè)增量抓取方法,包括如下步驟:1)有效鏈接獲取階段:a.初始化抓取網(wǎng)頁(yè)鏈接,指定抓取入口URL;b.判斷入口網(wǎng)頁(yè)鏈接是否具有分頁(yè);c.計(jì)算入口網(wǎng)頁(yè)與其分頁(yè)的公共鏈接;d.通過(guò)公共鏈接獲取有效鏈接;e.結(jié)束;2)增量抓取階段:a.構(gòu)建布隆過(guò)濾器,并通過(guò)布隆過(guò)濾器判斷步驟1)-d中有效網(wǎng)頁(yè)鏈接是否已經(jīng)抓??;b.通過(guò)HTTP請(qǐng)求抓取未抓取的網(wǎng)頁(yè);c.結(jié)束;本發(fā)明采用過(guò)濾無(wú)效鏈接獲取有效的網(wǎng)頁(yè)鏈接,并構(gòu)建布隆過(guò)濾器維持已抓取鏈接集合,通過(guò)隨機(jī)哈希判斷網(wǎng)頁(yè)是否抓取實(shí)現(xiàn)增量抓取。通過(guò)過(guò)濾無(wú)效鏈接,避免無(wú)效網(wǎng)頁(yè)的抓取。
【IPC分類】G06F17-30
【公開(kāi)號(hào)】CN104794193
【申請(qǐng)?zhí)枴緾N201510185493
【發(fā)明人】張雷, 劉有力, 資帥, 韓軍華, 馮瀚洋, 謝俊元
【申請(qǐng)人】南京大學(xué)
【公開(kāi)日】2015年7月22日
【申請(qǐng)日】2015年4月17日