專(zhuān)利名稱(chēng):基于互聯(lián)網(wǎng)系統(tǒng)的分布式信息抓取方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種信息抓取方法,尤其涉及一種基于互聯(lián)網(wǎng)系統(tǒng)的分布式信息抓取方法。
背景技術(shù):
I、什么是信息抓取,網(wǎng)絡(luò)爬蟲(chóng)及其發(fā)展
信息抓取是將需要的信息從其它網(wǎng)站中抓取出來(lái)保存到設(shè)計(jì)的數(shù)據(jù)庫(kù)中的過(guò)程,又稱(chēng)網(wǎng)絡(luò)爬蟲(chóng)、網(wǎng)頁(yè)蜘蛛、網(wǎng)絡(luò)機(jī)器人,是搜索引擎的重要組成部分。它是一個(gè)自動(dòng)抓取網(wǎng)頁(yè)內(nèi)容的程序,為搜索引擎從因特上快速批量下載處理網(wǎng)頁(yè)。傳統(tǒng)的網(wǎng)頁(yè)爬蟲(chóng)是從一個(gè)或若干初始網(wǎng)頁(yè)的URL開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當(dāng)前頁(yè)面上抽取新的URL放入隊(duì)列,直到滿足系統(tǒng)的一定停止條件,才結(jié)束抓取進(jìn)程。 2、什么是分布式抓取,及其分類(lèi),體系結(jié)構(gòu)
隨著互聯(lián)網(wǎng)信息的數(shù)據(jù)量成指數(shù)級(jí)增長(zhǎng),現(xiàn)有網(wǎng)絡(luò)爬蟲(chóng)信息采集的速度越來(lái)越不能滿足實(shí)際應(yīng)用的需要。即使大型的信息采集系統(tǒng)對(duì)Web的覆蓋率也只有30 — 40%,刷新一遍已經(jīng)采集的頁(yè)面常常需要數(shù)周到一個(gè)月的時(shí)間。解決這一問(wèn)題的最好的辦法是用分布式方式來(lái)進(jìn)行網(wǎng)頁(yè)信息采集。分布式網(wǎng)絡(luò)爬蟲(chóng)可以看成由多個(gè)集中式網(wǎng)絡(luò)爬蟲(chóng)組合而成。分布式系統(tǒng)中的每個(gè)節(jié)點(diǎn)都可以看作一個(gè)集中式網(wǎng)絡(luò)爬蟲(chóng)。多個(gè)網(wǎng)絡(luò)爬蟲(chóng)共同運(yùn)行,肯定會(huì)涉及到各個(gè)節(jié)點(diǎn)間相互通信。
發(fā)明內(nèi)容
本發(fā)明的目的就是為了解決現(xiàn)有技術(shù)中存在的上述問(wèn)題,提供一種基于互聯(lián)網(wǎng)系統(tǒng)的分布式信息抓取方法
本發(fā)明的目的通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn)
基于互聯(lián)網(wǎng)系統(tǒng)的分布式信息抓取方法,將爬蟲(chóng)分布在兩臺(tái)或是兩臺(tái)以上的主機(jī)上,按照定制的管理機(jī)制同時(shí)負(fù)責(zé)抓取網(wǎng)絡(luò)上的信息,由中央主機(jī)控制各抓取機(jī)器的抓取方向,然后將各抓取機(jī)器得到的數(shù)據(jù)進(jìn)行整理匯總,形成有用的信息或是數(shù)據(jù),放到索引庫(kù)或是數(shù)據(jù)庫(kù)中,其中所述的爬蟲(chóng)在同一個(gè)局域網(wǎng)里運(yùn)行,通過(guò)高速網(wǎng)絡(luò)連接相互通信;所述的爬蟲(chóng)通過(guò)同一個(gè)網(wǎng)絡(luò)去訪問(wèn)外部互聯(lián)網(wǎng),下載網(wǎng)頁(yè);所有的網(wǎng)絡(luò)負(fù)載都集中在爬蟲(chóng)所在的那個(gè)局域網(wǎng)的出口上;所述的爬蟲(chóng)工作方式包括主從模式、自治模式與混合模式。上述的基于互聯(lián)網(wǎng)系統(tǒng)的分布式信息抓取方法,其中所述的主從模式是由一臺(tái)主機(jī)作為控制節(jié)點(diǎn)負(fù)責(zé)所有運(yùn)行爬蟲(chóng)的主機(jī)進(jìn)行管理,爬蟲(chóng)從控制節(jié)點(diǎn)接收任務(wù),并把新生成任務(wù)提交給控制節(jié)點(diǎn),且不與其他爬蟲(chóng)通信;所述的控制節(jié)點(diǎn)與所有爬蟲(chóng)進(jìn)行通信,采用一個(gè)地址列表來(lái)保存系統(tǒng)中所有爬蟲(chóng)的信息;當(dāng)系統(tǒng)中的爬蟲(chóng)數(shù)量發(fā)生變化時(shí),協(xié)調(diào)者需要更新地址列表里的數(shù)據(jù),這一過(guò)程對(duì)于系統(tǒng)中的爬蟲(chóng)是透明的。進(jìn)一步地,上述的基于互聯(lián)網(wǎng)系統(tǒng)的分布式信息抓取方法,其中所述的自治模式為,系統(tǒng)中沒(méi)有協(xié)調(diào)者,所有的爬蟲(chóng)都必須相互通信,自治模式的通信方式使用全連接通信或環(huán)形通信。更進(jìn)一步地,上述的基于互聯(lián)網(wǎng)系統(tǒng)的分布式信息抓取方法,其中所述的全連接通信是指所用爬蟲(chóng)都相互發(fā)送信息,每個(gè)爬蟲(chóng)會(huì)維護(hù)一個(gè)地址列表,表中存儲(chǔ)著整個(gè)系統(tǒng)中所有爬蟲(chóng)的位置,每次通信時(shí)直接把數(shù)據(jù)發(fā)送給需要此數(shù)據(jù)的爬蟲(chóng);當(dāng)系統(tǒng)中的爬蟲(chóng)數(shù)量發(fā)生變化時(shí),每個(gè)爬蟲(chóng)的地址列表都需要進(jìn)行更新。更進(jìn)一步地,上述的基于互聯(lián)網(wǎng)系統(tǒng)的分布式信息抓取方法,其中所述的環(huán)形通信是指爬蟲(chóng)在邏輯上構(gòu)成一個(gè)環(huán)形網(wǎng),數(shù)據(jù)在環(huán)上按順時(shí)針或逆時(shí)針單向傳輸,每個(gè)爬蟲(chóng)的地址列表中只保存其前驅(qū)和后繼的信息;爬蟲(chóng)接收到數(shù)據(jù)之后判斷數(shù)據(jù)是否是發(fā)送給自己的,如果數(shù)據(jù)不是發(fā)送給自己的,就把數(shù)據(jù)轉(zhuǎn)發(fā)給后繼;如果數(shù)據(jù)是發(fā)送給自己的,就不再發(fā)送;設(shè)整個(gè)系統(tǒng)中有η個(gè)爬蟲(chóng),當(dāng)系統(tǒng)中的爬蟲(chóng)數(shù)量發(fā)生變化時(shí),系統(tǒng)中只有n-Ι個(gè)爬蟲(chóng)的地址列表需要進(jìn)行更新。更進(jìn)一步地,上述的基于互聯(lián)網(wǎng)系統(tǒng)的分布式信息抓取方法,其中所述的混合模 式為爬蟲(chóng)相互通信,同時(shí)都具有任務(wù)分配功能;至少有一個(gè)特殊爬蟲(chóng),該特殊爬蟲(chóng)主要對(duì)已經(jīng)經(jīng)過(guò)爬蟲(chóng)任務(wù)分配后無(wú)法分配的任務(wù)進(jìn)行集中分配;所述的特殊爬蟲(chóng)需除了保存自己采集范圍的地址列表外,還保存需要進(jìn)行集中分配的地址列表。更進(jìn)一步地,上述的基于互聯(lián)網(wǎng)系統(tǒng)的分布式信息抓取方法,其中所述的主機(jī)是指能夠運(yùn)行抓取程序的計(jì)算機(jī),包括普通PC機(jī)或是服務(wù)器。再進(jìn)一步地,上述的基于互聯(lián)網(wǎng)系統(tǒng)的分布式信息抓取方法,其中所述定制的管理機(jī)制為任務(wù)控制分發(fā)機(jī)制,各抓取機(jī)器每隔一段時(shí)間,將收集來(lái)的URL傳送到中央主機(jī)的URL列表庫(kù)里,再由中央主機(jī)來(lái)分發(fā)抓取的URL鏈接。本發(fā)明技術(shù)方案的優(yōu)點(diǎn)主要體現(xiàn)在分布式信息抓取可以比傳統(tǒng)的爬蟲(chóng)可以提供更快,更方便的網(wǎng)絡(luò)抓取,其優(yōu)點(diǎn)有如下幾點(diǎn)1、信息抓取速度快,效率高,容錯(cuò)性好;2、升級(jí)方便;3、插件管理,方便維護(hù);4、系統(tǒng)可以自由添加減少爬蟲(chóng)機(jī)器。
本發(fā)明的目的、優(yōu)點(diǎn)和特點(diǎn),將通過(guò)下面優(yōu)選實(shí)施例的非限制性說(shuō)明進(jìn)行圖示和解釋。這些實(shí)施例僅是應(yīng)用本發(fā)明技術(shù)方案的典型范例,凡采取等同替換或者等效變換而形成的技術(shù)方案,均落在本發(fā)明要求保護(hù)的范圍之內(nèi)。這些附圖當(dāng)中,
圖I是主從模式爬蟲(chóng)工作方式示意 圖2是自治模式爬蟲(chóng)工作方式示意 圖3是混合模式爬蟲(chóng)工作方式示意圖。
具體實(shí)施例方式K實(shí)施例一 3
基于互聯(lián)網(wǎng)系統(tǒng)的分布式信息抓取方法,將爬蟲(chóng)分布在兩臺(tái)或是兩臺(tái)以上的普通PC機(jī)中,按照定制的管理機(jī)制同時(shí)負(fù)責(zé)抓取網(wǎng)絡(luò)上的信息,由中央主機(jī)控制各抓取機(jī)器的抓取方向,然后將各抓取機(jī)器得到的數(shù)據(jù)進(jìn)行整理匯總,形成有用的信息或是數(shù)據(jù),放到索引庫(kù)或是數(shù)據(jù)庫(kù)中,其特別之處在于本發(fā)明所采用的爬蟲(chóng)在同一個(gè)局域網(wǎng)里運(yùn)行,通過(guò)高速網(wǎng)絡(luò)連接相互通信。具體來(lái)說(shuō),所述的爬蟲(chóng)通過(guò)同一個(gè)網(wǎng)絡(luò)去訪問(wèn)外部互聯(lián)網(wǎng),下載網(wǎng)頁(yè)。同時(shí),所有的網(wǎng)絡(luò)負(fù)載都集中在爬蟲(chóng)所在的那個(gè)局域網(wǎng)的出口上。進(jìn)一步來(lái)看,本發(fā)明所采用的爬蟲(chóng)工作方式為主從模式,即如圖I所示。其由一臺(tái)主機(jī)作為控制節(jié)點(diǎn)負(fù)責(zé)所有運(yùn)行爬蟲(chóng)的主機(jī)進(jìn)行管理,爬蟲(chóng)從控制節(jié)點(diǎn)接收任務(wù),并把新生成任務(wù)提交給控制節(jié)點(diǎn),且不與其他爬蟲(chóng)通信。圖I中,控制節(jié)點(diǎn)與爬行節(jié)點(diǎn)的關(guān)系是爬蟲(chóng)節(jié)點(diǎn)依附于控制節(jié)點(diǎn),是主從關(guān)系,爬蟲(chóng)節(jié)點(diǎn)每隔一段時(shí)間就主動(dòng)報(bào)告其抓取情況和進(jìn)程,也可以向中央主機(jī)請(qǐng)求抓取任務(wù),如果減少爬行節(jié)點(diǎn),則應(yīng)將爬行節(jié)點(diǎn)抓取的數(shù)據(jù)上傳到中央主機(jī)上,這個(gè)工作可以由控制節(jié)點(diǎn)完成,也可以由爬行節(jié)點(diǎn)完成。完成數(shù)據(jù)的上傳,爬行節(jié)點(diǎn)可以退出爬蟲(chóng),控制節(jié)點(diǎn)也關(guān)閉這個(gè)機(jī)器的連接。新添加爬行節(jié)點(diǎn)時(shí),爬蟲(chóng)節(jié)點(diǎn)應(yīng)主動(dòng)向配置的中央主機(jī)發(fā)送心跳信息,并報(bào)告自身的情況,中央主機(jī)在接收到新的心跳時(shí),判斷處理后新分配任務(wù)給抓取機(jī)器進(jìn)行抓取。如果爬行節(jié)點(diǎn)在沒(méi)有完成數(shù)據(jù)上傳的情況就發(fā)生宕機(jī),或其它不可恢復(fù)的情況,中央主機(jī)與其失去聯(lián)系,此時(shí)中央主機(jī)在一段時(shí)間內(nèi)檢測(cè)多次仍不能有效溝通的情況,中央 主機(jī)則認(rèn)為該爬行節(jié)點(diǎn)發(fā)生故障,應(yīng)將其從爬行機(jī)器列表中關(guān)閉,根據(jù)任務(wù)分配列表,提取到分配給該爬行節(jié)點(diǎn)的任務(wù),重新放到待抓取url庫(kù)里,重新分發(fā)給其它抓取機(jī)器進(jìn)行抓取。再進(jìn)一步來(lái)看,控制節(jié)點(diǎn)與所有爬蟲(chóng)進(jìn)行通信,采用一個(gè)地址列表來(lái)保存系統(tǒng)中所有爬蟲(chóng)的信息;當(dāng)系統(tǒng)中的爬蟲(chóng)數(shù)量發(fā)生變化時(shí),協(xié)調(diào)者需要更新地址列表里的數(shù)據(jù),這一過(guò)程對(duì)于系統(tǒng)中的爬蟲(chóng)是透明的。就本實(shí)施例來(lái)看,所采用的定制的管理機(jī)制為任務(wù)控制分發(fā)機(jī)制,其為了能夠有效避免各抓取機(jī)器產(chǎn)生重復(fù)性的抓取,需要各抓取機(jī)器抓提取得來(lái)的新url地址收集,每隔一段時(shí)間(比如五分鐘),將收集來(lái)的URL傳送到中央主機(jī)的URL列表庫(kù)里,再由中央主機(jī)來(lái)分發(fā)抓取的URL鏈接,各抓取機(jī)器只能抓取中央主機(jī)分配下來(lái)的url。具體來(lái)說(shuō)就算是抓取機(jī)器新抓取提取得來(lái)的url,除非是以屬于分配下的url同域名下的網(wǎng)址,其它則不能自行分配抓取,必須上傳到中央主機(jī),由其中央主機(jī)分配抓取任務(wù)。并且,中央主機(jī)每隔一段時(shí)間,查看url庫(kù)里的新的url,分發(fā)給各抓取機(jī)器,并作記錄。同時(shí),各抓取機(jī)器不斷的檢測(cè)其機(jī)器上的url庫(kù),如果一旦有新url插入時(shí)就開(kāi)始其抓取,如此往復(fù),以不斷的抓取新識(shí)別的網(wǎng)址信息,完成抓取;如果抓取機(jī)器里待抓取網(wǎng)址列表為空,則向中央主機(jī)請(qǐng)求抓取任務(wù),在中央主機(jī)分配給抓取任務(wù)之前,抓取機(jī)器只能等待中央主機(jī)分發(fā)新的抓取任務(wù)。換句話說(shuō),中央主機(jī)為了提高各抓取機(jī)器的效率,應(yīng)根據(jù)各抓取機(jī)器的性能情況,帶寬速度等綜合情況考慮,分配好相應(yīng)抓取機(jī)器的抓取強(qiáng)度,以提高抓取機(jī)器的效率。同時(shí),中央主機(jī)在分配url抓取任務(wù)時(shí),以域名為分隔點(diǎn)。同一個(gè)域名的url盡量分配在同一個(gè)抓取機(jī)器上進(jìn)行,這樣抓取機(jī)器在抓取時(shí),如果新發(fā)現(xiàn)的url地址就屬于該域名下,則這抓取機(jī)器不向中央主機(jī)報(bào)告直接抓取新發(fā)現(xiàn)的網(wǎng)頁(yè),當(dāng)新發(fā)現(xiàn)的網(wǎng)址不屬于分配下來(lái)的域名段時(shí),抓取機(jī)器該向中央主機(jī)報(bào)告其新發(fā)現(xiàn)的url。之后,由中央主機(jī)分配url具體由哪個(gè)抓取機(jī)器負(fù)責(zé)抓取,各抓取機(jī)器最后向中央主機(jī)己抓取的url列表,數(shù)量,體積,抓取時(shí)間。這樣,為以后更新提供依據(jù),中央主機(jī)也同時(shí)積累URL域名庫(kù),以供下一次更新時(shí)的初始爬蟲(chóng)入口。K實(shí)施例二 3基于互聯(lián)網(wǎng)系統(tǒng)的分布式信息抓取方法,將爬蟲(chóng)分布在兩臺(tái)或是兩臺(tái)以上的是服務(wù)器上,按照定制的管理機(jī)制同時(shí)負(fù)責(zé)抓取網(wǎng)絡(luò)上的信息,由中央主機(jī)控制各抓取機(jī)器的抓取方向,然后將各抓取機(jī)器得到的數(shù)據(jù)進(jìn)行整理匯總,形成有用的信息或是數(shù)據(jù),放到索引庫(kù)或是數(shù)據(jù)庫(kù)中,其特別之處在于本發(fā)明所采用的爬蟲(chóng)在同一個(gè)局域網(wǎng)里運(yùn)行,通過(guò)高速網(wǎng)絡(luò)連接相互通信。具體來(lái)說(shuō),所述的爬蟲(chóng)通過(guò)同一個(gè)網(wǎng)絡(luò)去訪問(wèn)外部互聯(lián)網(wǎng),下載網(wǎng)頁(yè)。同時(shí),所有的網(wǎng)絡(luò)負(fù)載都集中在爬蟲(chóng)所在的那個(gè)局域網(wǎng)的出口上。進(jìn)一步來(lái)看,本發(fā)明所采用的爬蟲(chóng)工作方式為自治模式,即如圖2所示。該系統(tǒng)中沒(méi)有協(xié)調(diào)者,所有的爬蟲(chóng)都必須相互通信,自治模式的通信方式使用全連接通信或環(huán)形通 目。圖2中,控制節(jié)點(diǎn)與爬行節(jié)點(diǎn)的關(guān)系是爬蟲(chóng)節(jié)點(diǎn)依附于控制節(jié)點(diǎn),是主從關(guān)系,爬蟲(chóng)節(jié)點(diǎn)每隔一段時(shí)間就主動(dòng)報(bào)告其抓取情況和進(jìn)程,也可以向中央主機(jī)請(qǐng)求抓取任務(wù),如果減少爬行節(jié)點(diǎn),則應(yīng)將爬行節(jié)點(diǎn)抓取的數(shù)據(jù)上傳到中央主機(jī)上,這個(gè)工作可以由控制節(jié) 點(diǎn)完成,也可以由爬行節(jié)點(diǎn)完成。完成數(shù)據(jù)的上傳,爬行節(jié)點(diǎn)可以退出爬蟲(chóng),控制節(jié)點(diǎn)也關(guān)閉這個(gè)機(jī)器的連接。新添加爬行節(jié)點(diǎn)時(shí),爬蟲(chóng)節(jié)點(diǎn)應(yīng)主動(dòng)向配置的中央主機(jī)發(fā)送心跳信息,并報(bào)告自身的情況,中央主機(jī)在接收到新的心跳時(shí),判斷處理后新分配任務(wù)給抓取機(jī)器進(jìn)行抓取。如果爬行節(jié)點(diǎn)在沒(méi)有完成數(shù)據(jù)上傳的情況就發(fā)生宕機(jī),或其它不可恢復(fù)的情況,中央主機(jī)與其失去聯(lián)系,此時(shí)中央主機(jī)在一段時(shí)間內(nèi)檢測(cè)多次仍不能有效溝通的情況,中央主機(jī)則認(rèn)為該爬行節(jié)點(diǎn)發(fā)生故障,應(yīng)將其從爬行機(jī)器列表中關(guān)閉,根據(jù)任務(wù)分配列表,提取到分配給該爬行節(jié)點(diǎn)的任務(wù),重新放到待抓取url庫(kù)里,重新分發(fā)給其它抓取機(jī)器進(jìn)行抓取。具體來(lái)說(shuō),全連接通信是指所用爬蟲(chóng)都相互發(fā)送信息,每個(gè)爬蟲(chóng)會(huì)維護(hù)一個(gè)地址列表,表中存儲(chǔ)著整個(gè)系統(tǒng)中所有爬蟲(chóng)的位置,每次通信時(shí)直接把數(shù)據(jù)發(fā)送給需要此數(shù)據(jù)的爬蟲(chóng)。當(dāng)系統(tǒng)中的爬蟲(chóng)數(shù)量發(fā)生變化時(shí),每個(gè)爬蟲(chóng)的地址列表都需要進(jìn)行更新。同時(shí),關(guān)于環(huán)形通信是指爬蟲(chóng)在邏輯上構(gòu)成一個(gè)環(huán)形網(wǎng),數(shù)據(jù)在環(huán)上按順時(shí)針或逆時(shí)針單向傳輸,每個(gè)爬蟲(chóng)的地址列表中只保存其前驅(qū)和后繼的信息。爬蟲(chóng)接收到數(shù)據(jù)之后判斷數(shù)據(jù)是否是發(fā)送給自己的,如果數(shù)據(jù)不是發(fā)送給自己的,就把數(shù)據(jù)轉(zhuǎn)發(fā)給后繼。如果數(shù)據(jù)是發(fā)送給自己的,就不再發(fā)送。并且,可以設(shè)整個(gè)系統(tǒng)中有η個(gè)爬蟲(chóng),當(dāng)系統(tǒng)中的爬蟲(chóng)數(shù)量發(fā)生變化時(shí),系統(tǒng)中只有n-Ι個(gè)爬蟲(chóng)的地址列表需要進(jìn)行更新。本實(shí)施例采用的定制的管理機(jī)制與實(shí)施例一雷同,在此不在贅述。K實(shí)施例三3
基于互聯(lián)網(wǎng)系統(tǒng)的分布式信息抓取方法,將爬蟲(chóng)分布在兩臺(tái)或是兩臺(tái)以上的主機(jī)上,所述的主機(jī)是指能夠運(yùn)行抓取程序的計(jì)算機(jī),包括普通PC機(jī)或是服務(wù)器。按照定制的管理機(jī)制同時(shí)負(fù)責(zé)抓取網(wǎng)絡(luò)上的信息,由中央主機(jī)控制各抓取機(jī)器的抓取方向,然后將各抓取機(jī)器得到的數(shù)據(jù)進(jìn)行整理匯總,形成有用的信息或是數(shù)據(jù),放到索引庫(kù)或是數(shù)據(jù)庫(kù)中,其特別之處在于本發(fā)明所采用的爬蟲(chóng)在同一個(gè)局域網(wǎng)里運(yùn)行,通過(guò)高速網(wǎng)絡(luò)連接相互通信。具體來(lái)說(shuō),所述的爬蟲(chóng)通過(guò)同一個(gè)網(wǎng)絡(luò)去訪問(wèn)外部互聯(lián)網(wǎng),下載網(wǎng)頁(yè)。同時(shí),所有的網(wǎng)絡(luò)負(fù)載都集中在爬蟲(chóng)所在的那個(gè)局域網(wǎng)的出口上。進(jìn)一步來(lái)看,本發(fā)明所采用的爬蟲(chóng)工作方式為混合模式,即如圖3所示。具體來(lái)說(shuō),該方式所采用的為爬蟲(chóng)相互通信,同時(shí)都具有任務(wù)分配功能。并且,在所述的爬蟲(chóng)中至少有一個(gè)特殊爬蟲(chóng),該特殊爬蟲(chóng)主要對(duì)已經(jīng)經(jīng)過(guò)爬蟲(chóng)任務(wù)分配后無(wú)法分配的任務(wù)進(jìn)行集中分配;所述的特殊爬蟲(chóng)需除了保存自己采集范圍的地址列表外,還保存需要進(jìn)行集中分配的地址列表。本實(shí)施例采用的定制的管理機(jī)制與實(shí)施例一雷同,在此不在贅述。通過(guò)上述的文字表述可以看出,采用本發(fā)明后,分布式信息抓取可以比傳統(tǒng)的爬蟲(chóng)可以提供更快,更方便的網(wǎng)絡(luò)抓取,其優(yōu)點(diǎn)有如下幾點(diǎn)1、信息抓取速度快,效率高,容錯(cuò) 性好;2、升級(jí)方便;3、插件管理,方便維護(hù);4、系統(tǒng)可以自由添加減少爬蟲(chóng)機(jī)器。
權(quán)利要求
1.基于互聯(lián)網(wǎng)系統(tǒng)的分布式信息抓取方法,將爬蟲(chóng)分布在兩臺(tái)或是兩臺(tái)以上的主機(jī)上,按照定制的管理機(jī)制同時(shí)負(fù)責(zé)抓取網(wǎng)絡(luò)上的信息,由中央主機(jī)控制各抓取機(jī)器的抓取方向,然后將各抓取機(jī)器得到的數(shù)據(jù)進(jìn)行整理匯總,形成有用的信息或是數(shù)據(jù),放到索引庫(kù)或是數(shù)據(jù)庫(kù)中,其 特征在于所述的爬蟲(chóng)在同一個(gè)局域網(wǎng)里運(yùn)行,通過(guò)高速網(wǎng)絡(luò)連接相互通信;所述的爬蟲(chóng)通過(guò)同一個(gè)網(wǎng)絡(luò)去訪問(wèn)外部互聯(lián)網(wǎng),下載網(wǎng)頁(yè);所有的網(wǎng)絡(luò)負(fù)載都集中在爬蟲(chóng)所在的那個(gè)局域網(wǎng)的出口上;所述的爬蟲(chóng)工作方式包括主從模式、自治模式與混合模式。
2.根據(jù)權(quán)利要求I所述的基于互聯(lián)網(wǎng)系統(tǒng)的分布式信息抓取方法,其特征在于所述的主從模式是由一臺(tái)主機(jī)作為控制節(jié)點(diǎn)負(fù)責(zé)所有運(yùn)行爬蟲(chóng)的主機(jī)進(jìn)行管理,爬蟲(chóng)從控制節(jié)點(diǎn)接收任務(wù),并把新生成任務(wù)提交給控制節(jié)點(diǎn),且不與其他爬蟲(chóng)通信;所述的控制節(jié)點(diǎn)與所有爬蟲(chóng)進(jìn)行通信,采用一個(gè)地址列表來(lái)保存系統(tǒng)中所有爬蟲(chóng)的信息;當(dāng)系統(tǒng)中的爬蟲(chóng)數(shù)量發(fā)生變化時(shí),協(xié)調(diào)者需要更新地址列表里的數(shù)據(jù),這一過(guò)程對(duì)于系統(tǒng)中的爬蟲(chóng)是透明的。
3.根據(jù)權(quán)利要求I所述的基于互聯(lián)網(wǎng)系統(tǒng)的分布式信息抓取方法,其特征在于所述的自治模式為,系統(tǒng)中沒(méi)有協(xié)調(diào)者,所有的爬蟲(chóng)都必須相互通信,自治模式的通信方式使用全連接通信或環(huán)形通信。
4.根據(jù)權(quán)利要求3所述的基于互聯(lián)網(wǎng)系統(tǒng)的分布式信息抓取方法,其特征在于所述的全連接通信是指所用爬蟲(chóng)都相互發(fā)送信息,每個(gè)爬蟲(chóng)會(huì)維護(hù)一個(gè)地址列表,表中存儲(chǔ)著整個(gè)系統(tǒng)中所有爬蟲(chóng)的位置,每次通信時(shí)直接把數(shù)據(jù)發(fā)送給需要此數(shù)據(jù)的爬蟲(chóng);當(dāng)系統(tǒng)中的爬蟲(chóng)數(shù)量發(fā)生變化時(shí),每個(gè)爬蟲(chóng)的地址列表都需要進(jìn)行更新。
5.根據(jù)權(quán)利要求3所述的基于互聯(lián)網(wǎng)系統(tǒng)的分布式信息抓取方法,其特征在于所述的環(huán)形通信是指爬蟲(chóng)在邏輯上構(gòu)成一個(gè)環(huán)形網(wǎng),數(shù)據(jù)在環(huán)上按順時(shí)針或逆時(shí)針單向傳輸,每個(gè)爬蟲(chóng)的地址列表中只保存其前驅(qū)和后繼的信息;爬蟲(chóng)接收到數(shù)據(jù)之后判斷數(shù)據(jù)是否是發(fā)送給自己的,如果數(shù)據(jù)不是發(fā)送給自己的,就把數(shù)據(jù)轉(zhuǎn)發(fā)給后繼;如果數(shù)據(jù)是發(fā)送給自己的,就不再發(fā)送;設(shè)整個(gè)系統(tǒng)中有η個(gè)爬蟲(chóng),當(dāng)系統(tǒng)中的爬蟲(chóng)數(shù)量發(fā)生變化時(shí),系統(tǒng)中只有η-i個(gè)爬蟲(chóng)的地址列表需要進(jìn)行更新。
6.根據(jù)權(quán)利要求I所述的基于互聯(lián)網(wǎng)系統(tǒng)的分布式信息抓取方法,其特征在于所述的混合模式為爬蟲(chóng)相互通信,同時(shí)都具有任務(wù)分配功能;至少有一個(gè)特殊爬蟲(chóng),該特殊爬蟲(chóng)主要對(duì)已經(jīng)經(jīng)過(guò)爬蟲(chóng)任務(wù)分配后無(wú)法分配的任務(wù)進(jìn)行集中分配;所述的特殊爬蟲(chóng)需除了保存自己采集范圍的地址列表外,還保存需要進(jìn)行集中分配的地址列表。
7.根據(jù)權(quán)利要求I所述的基于互聯(lián)網(wǎng)系統(tǒng)的分布式信息抓取方法,其特征在于所述的主機(jī)是指能夠運(yùn)行抓取程序的計(jì)算機(jī),包括普通PC機(jī)或是服務(wù)器。
8.根據(jù)權(quán)利要求I所述的基于互聯(lián)網(wǎng)系統(tǒng)的分布式信息抓取方法,其特征在于所述定制的管理機(jī)制為任務(wù)控制分發(fā)機(jī)制,各抓取機(jī)器每隔一段時(shí)間,將收集來(lái)的URL傳送到中央主機(jī)的URL列表庫(kù)里,再由中央主機(jī)來(lái)分發(fā)抓取的URL鏈接。
全文摘要
本發(fā)明涉及一種基于互聯(lián)網(wǎng)系統(tǒng)的分布式信息抓取方法,將爬蟲(chóng)分布在兩臺(tái)或是兩臺(tái)以上的機(jī)器上,按照定制的管理機(jī)制同時(shí)負(fù)責(zé)抓取網(wǎng)絡(luò)上的信息,由中央主機(jī)控制各抓取機(jī)器的抓取方向,然后將各抓取機(jī)器得到的數(shù)據(jù)進(jìn)行整理匯總,形成有用的信息或是數(shù)據(jù),放到索引庫(kù)或是數(shù)據(jù)庫(kù)中,其特點(diǎn)是爬蟲(chóng)在同一個(gè)局域網(wǎng)里運(yùn)行,通過(guò)高速網(wǎng)絡(luò)連接相互通信;所述的爬蟲(chóng)通過(guò)同一個(gè)網(wǎng)絡(luò)去訪問(wèn)外部互聯(lián)網(wǎng),下載網(wǎng)頁(yè);所有的網(wǎng)絡(luò)負(fù)載都集中在爬蟲(chóng)所在的那個(gè)局域網(wǎng)的出口上;爬蟲(chóng)工作方式包括主從模式、自治模式與混合模式。由此,更方便的網(wǎng)絡(luò)抓取,信息抓取速度快,效率高,容錯(cuò)性好。同時(shí),升級(jí)方便,方便維護(hù)。再者可以自由添加減少爬蟲(chóng)機(jī)器。
文檔編號(hào)G06F17/30GK102902669SQ20111020606
公開(kāi)日2013年1月30日 申請(qǐng)日期2011年7月22日 優(yōu)先權(quán)日2011年7月22日
發(fā)明者吳志祥, 張海龍, 馬和平, 王專(zhuān), 吳劍, 郭鳳林, 王曉鐘, 龐紹進(jìn) 申請(qǐng)人:同程網(wǎng)絡(luò)科技股份有限公司