專利名稱:自動(dòng)優(yōu)化爬蟲的抓取方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種網(wǎng)絡(luò)爬蟲信息抓取的方法,尤其是搜索引擎利用爬蟲技術(shù)抓取信息并自 動(dòng)優(yōu)化抓取頻率的方法。
背景技術(shù):
搜索引擎是現(xiàn)今互聯(lián)網(wǎng)上廣為應(yīng)用的一項(xiàng)技術(shù),人們只需要輸入自己所尋找信息的部分 關(guān)鍵字就可以通過搜索引擎找到大量與該關(guān)鍵字相關(guān)的信息,例如谷歌、百度。
搜索引擎的信息來源多種多樣,有的是通過競價(jià)廣告的形式由發(fā)起這項(xiàng)廣告的廣告商向 搜索引擎運(yùn)營商支付廣告費(fèi),然后搜索引擎運(yùn)營商在自己的搜索引擎中刊登該廣告的簡要信 息及該廣告的鏈接,而更多的非廣告信息,例如新聞、學(xué)術(shù)信息是需要搜索引擎運(yùn)營商自己 去尋找并抓取加入搜索引擎的,面對互聯(lián)網(wǎng)上的海量信息,如何將大量搜索引擎運(yùn)營商關(guān)心 的信息從其他的無用信息中區(qū)分出來,并分門別類的加入搜索引擎成為了搜索引擎運(yùn)營商關(guān) 心的問題。
爬蟲技術(shù)的出現(xiàn)解決了這種問題,爬蟲技術(shù)是一種成熟的網(wǎng)頁抓取技術(shù),它能夠按照設(shè) 定的條件將符合該條件的信息從互聯(lián)網(wǎng)的海量信息中抓取出來,將其應(yīng)用于搜索引擎可以有 效地解決對各種有用信息的抓取問題。但是,爬蟲在抓取信息時(shí)仍需遍歷網(wǎng)頁,這在網(wǎng)頁數(shù) 量較少的時(shí)候并不會(huì)出現(xiàn)什么問題,但是,在面對互聯(lián)網(wǎng)上海量的網(wǎng)頁時(shí),遍歷所有網(wǎng)頁幾 乎是不可想象的,也是很難辦到的,即使辦到了,由于更新一次信息需要消耗大量的時(shí)間和 資源,必將影響抓取信息的時(shí)效性,所以為了折中利與弊,現(xiàn)在往往只是利用爬蟲在一定數(shù) 量、 一定范圍的網(wǎng)頁中抓取信息,而這些網(wǎng)頁一般是事先通過統(tǒng)計(jì)得出的含有有用信息的概 率和數(shù)量都較高的網(wǎng)頁。比如,我們現(xiàn)在要搜索關(guān)于北京的租房信息,圖1是一個(gè)有租房信 息的搜索列表頁(index頁),上面是租房信息的列表、該房的簡要信息以及該房信息頁(item 頁)的鏈接(鏈接只要用鼠標(biāo)點(diǎn)擊該房在列表中的簡要信息即可),根據(jù)鏈接我們可以找到 如圖2所示的記錄該房具體信息的信息頁,這樣,我們可以將該搜索列表頁記錄入爬蟲的搜 索范圍,使爬蟲每隔一段時(shí)間在該搜索列表頁上檢索一次是否有新的信息頁鏈接,如果有根 據(jù)鏈接下載該信息頁,抽取該信息頁中我們關(guān)心的信息,這樣既能保證爬蟲抽取有用網(wǎng)頁的 效率又能縮短遍歷一次所有網(wǎng)頁的時(shí)間。
但是,以上的利用爬蟲抓取網(wǎng)上信息的方法仍舊是一種基于理想狀態(tài)下的信息抓取方式, 在實(shí)際應(yīng)用中并不能讓爬蟲的抓取效率達(dá)到最高,這是因?yàn)樾滦畔⒌陌l(fā)布往往具有極強(qiáng)的時(shí) 效性,發(fā)布也更多是集中在一個(gè)時(shí)間段內(nèi),在其他時(shí)間則相對比較平靜,比如,每年火車票、 飛機(jī)票和長途汽車票的發(fā)售高峰是寒暑假及黃金周,房屋租賃高峰是每年高等院校畢業(yè)生離 校前后的一段日子等。如果我們用相同的頻率去抓取以上發(fā)布高峰期的信息和發(fā)布低谷期的 信息,顯然不能達(dá)到信息抓取的最高效率,因?yàn)閷Πl(fā)布高峰期來說信息抓取頻率相對較低, 影響了所抓取信息的時(shí)效性,對發(fā)布低谷期來說信息抓取頻率相對又較高,降低了系統(tǒng)效能, 增加了無謂的資源消耗。直到目前,還沒有一種方法能夠有效解決此問題。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)存在的缺陷和不足,本發(fā)明提供一種自動(dòng)優(yōu)化爬蟲的抓取方法,能夠動(dòng)態(tài) 的根據(jù)對信息的抓取結(jié)果自動(dòng)修正系統(tǒng)以后再次檢索該信息頁的頻率。
為了達(dá)到上述發(fā)明目的,本發(fā)明自動(dòng)優(yōu)化爬蟲的抓取方法,其特征在于包括以下歩驟-
(1) 從互聯(lián)網(wǎng)上抓取的信息頁中抽取信息,如果抽取成功,加快再次抓取該信息頁的頻
率;否則減慢再次抓取該信息頁的頻率;
(2) 在修改后的頻率到時(shí),重復(fù)步驟(1)。
本發(fā)明根據(jù)每次對信息的抓取結(jié)果自動(dòng)修正系統(tǒng)以后再次檢索該信息頁的頻率,這樣, 在信息的發(fā)布高峰期通過本發(fā)明的方法可以不斷提高再次抓取該信息頁的頻率;在信息的發(fā) 布低谷期又可以不斷降低再次抓取該信息頁的頻率,優(yōu)化了系統(tǒng)資源,提高了系統(tǒng)效能,提 高了信息抓取的效率。
圖1為索引列表頁示意圖2為信息頁示意圖3為本方法流程圖。
具體實(shí)施例方式
下面結(jié)合附圖對本發(fā)明作進(jìn)一步的詳細(xì)說明
酷訊的爬蟲調(diào)度算法采用觀測index頁下載是否成功、大小是否變化、時(shí)候頁面信息符 號需求、是否有有效的信息鏈接、是有效的信息被抓取條數(shù)、以及抓取時(shí)間等幾個(gè)因數(shù)來計(jì)
算刷新頻率。本方法主要是通過在計(jì)算機(jī)系統(tǒng)中按照以下公式對信息抓取頻率進(jìn)行修正的-
<formula>formula see original document page 5</formula>
本公式中,freq(n,ch,t)表示當(dāng)前為t時(shí)刻,爬蟲的第n次對ch頻道的抓?。籪CH ()是 各個(gè)頻道對各自特征對結(jié)果加以修正的函數(shù),其中,kd。
(l一bd,)表示index頁下載失敗后 降低再次抓取這個(gè)索引列表頁的頻率數(shù),k—,(l-b^,)表示item頁下載失敗后降低再次抓取 這個(gè)信息頁的頻率數(shù),0 kuen^表示item頁下載成功后提高再次抓取這個(gè)索引列表頁的頻率 數(shù),a為每個(gè)頻道對再次抓取這個(gè)索引列表頁的頻率的基于統(tǒng)計(jì)和推理得出的專家修正值, n"n表示每個(gè)頻道根據(jù)該頻道本身的特性對再次抓取該索引列表頁的頻率的修正,ch為該頻
道的頻道號;ftime(t)是根據(jù)當(dāng)前時(shí)間是白天還是晚上,節(jié)假日還是非節(jié)假日做的調(diào)整函數(shù); freq(n-l)是上一次爬蟲對該頻道的抓取頻率值。
如圖3所示,本公式是通過以下步驟實(shí)現(xiàn)的
(1) 從互聯(lián)網(wǎng)上抓取的信息頁中抽取信息,如果抽取成功,加快再次抓取該信息頁的頻 率;否則減慢再次抓取該信息頁的頻率;
(2) 在修改后的頻率到時(shí),重復(fù)步驟(1)。 具體為,步驟(1)進(jìn)一步包括
(11) 用于從互聯(lián)網(wǎng)上抓取信息并根據(jù)抓取結(jié)果修正抓取頻率的抓取檢測模塊,按照頻 道分類選擇一個(gè)頻道,從互聯(lián)網(wǎng)上抓取內(nèi)容與該頻道分類相對應(yīng)的索引列表頁,如果抓取失 敗,則說明該索引列表頁的鏈接下載不可靠,對該索引列表頁過于頻繁的抓取可能會(huì)造成更 多的抓取失敗,從而浪費(fèi)系統(tǒng)資源,所以抓取檢測模塊在上一次爬蟲對該頻道的抓取頻率值 上乘以一個(gè)kd。,n (l — bd。m)系數(shù)以降低再次抓取這個(gè)索引列表頁的頻率,進(jìn)而達(dá)到節(jié)省系統(tǒng)
資源的目的,然后進(jìn)入步驟(15);如果抓取成功,進(jìn)入步驟(12);
(12) 抓取檢測模塊檢測抓取成功的索引列表頁同上次抓取時(shí)相比是否添加了新的信息,
如果是,進(jìn)入步驟(13);否則,說明該索引列表頁的更新頻率趕不上爬蟲對該索引列表頁的
檢索頻率,抓取檢測模塊同樣是在上一次爬蟲對該頻道的抓取頻率值上乘以一個(gè)kd,(l一U
系數(shù)以降低再次抓取這個(gè)索引列表頁的頻率,使爬蟲對該索引列表頁的檢索頻率降到與該索
引列表頁自身的更新頻率相匹配的程度,從而達(dá)到節(jié)省系統(tǒng)資源的目的,進(jìn)入步驟(15);
(13) 抓取檢測模塊下載索引列表頁所添加的新的信息所對應(yīng)的信息頁,如果下載成功, 進(jìn)入步驟(14);否則,如果抓取失敗,說明該信息頁的鏈接下載不可靠,對該信息頁過于頻 繁的抓取可能會(huì)造成更多的抓取失敗,從而浪費(fèi)系統(tǒng)資源,所以在上一次爬蟲對該頻道的抓 取頻率值上乘以一個(gè)kin(tex(l-b^》系數(shù)以降低再次抓取鏈接該信息頁的索引列表頁的頻率, 以達(dá)到節(jié)省系統(tǒng)資源的目的,進(jìn)入步驟(15);
(14) 抓取檢測模塊將所述下載成功的信息頁發(fā)送給用于從信息頁中抽取有用信息的抽
取模塊,抽取模塊每成功從該信息頁中抽取一條信息,說明該信息頁的利用價(jià)值增大,通知 抓取檢測模塊加快一次以后抓取包含該信息的信息頁所屬的索引列表頁的頻率,然后抽取模 塊將該信息存入與該信息內(nèi)容的頻道分類對應(yīng)的頻道,抓取檢測模塊在上一次爬蟲對該頻道
的抓取頻率值上除以一個(gè)0 kuje系數(shù)(其中m為成功從該信息頁中抽取的信息條數(shù)),以降
低再次抓取鏈接該信息頁的索引列表頁的頻率,達(dá)到優(yōu)化系統(tǒng)資源,提高系統(tǒng)效能,提高信 息抓取效率的目的,然后進(jìn)入步驟(2);
(15) 抓取檢測模塊根據(jù)當(dāng)前時(shí)間對修改后的再次抓取所述索引列表頁的頻率進(jìn)行再修 正。如果當(dāng)前時(shí)間為晚上或節(jié)假日,可能由于網(wǎng)絡(luò)原因或是處于休息時(shí)間的原因,鏈接質(zhì)量 或者索引列表頁的更新頻率會(huì)降低,但這并不能代表常態(tài)下(工作日的白天)該索引列表頁 的鏈接質(zhì)量或者更新頻率,所以抓取檢測模塊在上一次爬蟲對該頻道的抓取頻率值上乘以一 個(gè)ftime(t)系數(shù),用來將再次抓取這個(gè)索引列表頁的頻率的降低幅度減緩,以使該頻率值更 接近實(shí)際情況。
為了使得到的頻率值更貼近各頻道的實(shí)際需要,在步驟(15)之后還可以包括
(16) 抓取檢測模塊再次對步驟(15)修正后的再次抓取這個(gè)索引列表頁的頻率進(jìn)行修 正,所述修正包括根據(jù)頻道分類特性進(jìn)行的修正和根據(jù)各頻道共性進(jìn)行的專家修正。
根據(jù)頻道分類特性進(jìn)行的修正是根據(jù)各頻道自身的特點(diǎn),比如,有的頻道活躍時(shí)間很集 中(例如火車票購買高峰就集中在一年里的幾天,該頻道的點(diǎn)擊高峰也就是那幾天),針對這
一特點(diǎn),可以考慮用n"Q指數(shù)適當(dāng)提高或降低得到的該頻道的頻率值以適應(yīng)該頻道特性。
根據(jù)各頻道共性進(jìn)行的專家修正是指實(shí)際得到的頻率值與我們經(jīng)過長期統(tǒng)計(jì)或其他方法 得到的頻率值可能有出入,為本發(fā)明得到的頻率值乘以一個(gè)專家修正值a以取得折衷值。
本發(fā)明能適應(yīng)大多數(shù)網(wǎng)站。包括信息發(fā)布頻率變化大無規(guī)律的和信息發(fā)布有規(guī)律的,并 且大多數(shù)情況能在1到2分鐘內(nèi)把剛剛發(fā)布的信息抓取回來。本發(fā)明優(yōu)化了系統(tǒng)資源,提高
了系統(tǒng)效能,提高了信息抓取的效率。
權(quán)利要求
1、一種自動(dòng)優(yōu)化爬蟲的抓取方法,其特征在于包括以下步驟(1)從互聯(lián)網(wǎng)上抓取的信息頁中抽取信息,如果抽取成功,加快再次抓取該信息頁的頻率;否則減慢再次抓取該信息頁的頻率;(2)在修改后的頻率到時(shí),重復(fù)步驟(1)。
2、 根據(jù)權(quán)利要求l所述的自動(dòng)優(yōu)化爬蟲的抓取方法,其特征在于步驟(1)進(jìn)一步包括(11) 抓取檢測模塊按照頻道分類,從互聯(lián)網(wǎng)上抓取內(nèi)容與各頻道分類相對應(yīng)的索引列 表頁,如果抓取失敗,則降低再次抓取這個(gè)索引列表頁的頻率,進(jìn)入步驟(15);如果抓取成 功,進(jìn)入步驟(12);(12) 抓取檢測模塊檢測抓取成功的索引列表頁同上次抓取時(shí)相比是否添加了新的信息, 如果是,進(jìn)入步驟(13);否則,降低再次抓取這個(gè)索引列表頁的頻率,進(jìn)入步驟(15);(13) 抓取檢測模塊下載索引列表頁所添加的新的信息所對應(yīng)的信息頁,如果下載成功, 進(jìn)入步驟(14);否則,降低再次抓取這個(gè)索引列表頁的頻率,進(jìn)入步驟(15);(14) 抓取檢測模塊將所述下載成功的信息頁發(fā)送給抽取模塊,抽取模塊每成功從該信息頁中抽取一條信息,通知抓取檢測模塊加快一次以后抓取包含該信息的信息頁所屬的索引 列表頁的頻率,然后抽取模塊將該信息存入與該信息內(nèi)容的頻道分類對應(yīng)的頻道,進(jìn)入步驟(2);(15) 抓取檢測模塊根據(jù)當(dāng)前時(shí)間對修改后的再次抓取所述索引列表頁的頻率進(jìn)行再修正。
3、 根據(jù)權(quán)利要求2所述的自動(dòng)優(yōu)化爬蟲的抓取方法,其特征在于步驟(15)具體為如果當(dāng)前時(shí)間為晚上或節(jié)假日,將再次抓取這個(gè)索引列表頁的頻率的降低幅度減緩。
4、 根據(jù)權(quán)利要求3所述的自動(dòng)優(yōu)化爬蟲的抓取方法,其特征在于在步驟(15)之后還 包括(16) 抓取檢測模塊再次對步驟(15)修正后的再次抓取這個(gè)索引列表頁的頻率進(jìn)行修正,所述修正包括根據(jù)頻道分類特性進(jìn)行的修正和根據(jù)各頻道共性進(jìn)行的專家修正。
全文摘要
本發(fā)明公開了一種自動(dòng)優(yōu)化爬蟲的抓取方法?,F(xiàn)有的爬蟲抓取網(wǎng)頁的方法是用相同的頻率去抓取發(fā)布高峰期的信息和發(fā)布低谷期的信息,影響了所抓取信息的時(shí)效性,降低了系統(tǒng)效能,增加了無謂的資源消耗。為解決上述問題,本發(fā)明包括以下步驟(1)從互聯(lián)網(wǎng)上抓取的信息頁中抽取信息,如果抽取成功,加快再次抓取該信息頁的頻率;否則減慢再次抓取該信息頁的頻率;(2)在修改后的頻率到時(shí),重復(fù)步驟(1)。本發(fā)明適用于現(xiàn)有的各種搜索引擎。
文檔編號G06F17/30GK101187925SQ20061014581
公開日2008年5月28日 申請日期2006年11月17日 優(yōu)先權(quán)日2006年11月17日
發(fā)明者華 陳 申請人:北京酷訊科技有限公司