一種網(wǎng)絡(luò)蜘蛛的更新控制方法及裝置制造方法
【專利摘要】本申請(qǐng)公開了一種網(wǎng)絡(luò)蜘蛛的更新控制方法及裝置,分別應(yīng)用于多個(gè)控制客戶端,每個(gè)控制客戶端均與控制中心相連接且每個(gè)控制客戶端中設(shè)置有網(wǎng)絡(luò)蜘蛛,控制中心設(shè)置有更新數(shù)據(jù)包,本申請(qǐng)中的方法包括:獲取控制中心的更新數(shù)據(jù)包;依據(jù)更新數(shù)據(jù)包判斷網(wǎng)絡(luò)蜘蛛中的蜘蛛程序是否需要更新,得到更新判斷結(jié)果;在更新判斷結(jié)果表明網(wǎng)絡(luò)蜘蛛中的蜘蛛程序需要更新時(shí),控制蜘蛛程序更新為與更新數(shù)據(jù)包相對(duì)應(yīng)的程序。本申請(qǐng)通過設(shè)置與控制客戶端相連接的控制中心形成網(wǎng)絡(luò)蜘蛛的分布式結(jié)構(gòu),在每個(gè)網(wǎng)絡(luò)蜘蛛所在的控制客戶端通過對(duì)控制中心中的更新數(shù)據(jù)包進(jìn)行獲取,進(jìn)而實(shí)現(xiàn)對(duì)每個(gè)網(wǎng)絡(luò)蜘蛛的更新控制,無(wú)需手工對(duì)每個(gè)網(wǎng)絡(luò)蜘蛛進(jìn)行更新,提高控制更新的效率。
【專利說明】一種網(wǎng)絡(luò)蜘蛛的更新控制方法及裝置
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及計(jì)算機(jī)網(wǎng)絡(luò)【技術(shù)領(lǐng)域】,特別涉及一種網(wǎng)絡(luò)蜘蛛的更新控制方法及裝置。
【背景技術(shù)】
[0002]目前,比價(jià)購(gòu)物網(wǎng)站通常采用一個(gè)網(wǎng)絡(luò)蜘蛛系統(tǒng)來(lái)進(jìn)行商品數(shù)據(jù)的抓取與收錄,以便為購(gòu)物網(wǎng)站提供商品數(shù)據(jù)。
[0003]隨著電子商務(wù)的迅速發(fā)展,越來(lái)越多的電商網(wǎng)站進(jìn)行越來(lái)越頻繁的促銷活動(dòng),其各自頁(yè)面改版越來(lái)越頻繁,導(dǎo)致傳統(tǒng)的網(wǎng)絡(luò)蜘蛛系統(tǒng)需要不斷更新各個(gè)蜘蛛程序進(jìn)行數(shù)據(jù)抓取的任務(wù)數(shù)據(jù),如抓取目標(biāo)及抓取時(shí)間等,現(xiàn)有技術(shù)中,可以通過手動(dòng)依次更新每個(gè)蜘蛛的蜘蛛程序。
[0004]但由于蜘蛛程序進(jìn)行處理的電商經(jīng)營(yíng)商品數(shù)據(jù)巨大,蜘蛛程序的分布隨之增加,使得蜘蛛程序的更新控制會(huì)需要巨大的更新時(shí)間及更新工作量,由此使得蜘蛛程序的更新控制效率極低。
【發(fā)明內(nèi)容】
[0005]本申請(qǐng)所要解決的技術(shù)問題是提供一種網(wǎng)絡(luò)蜘蛛的控制方法及裝置,用以解決現(xiàn)有技術(shù)中的蜘蛛程序的更新控制需要消耗巨大的時(shí)間及工作量,使得蜘蛛程序的更新控制效率極低的技術(shù)問題。
[0006]為實(shí)現(xiàn)以上目的,本申請(qǐng)采用如下技術(shù)方案:
[0007]本申請(qǐng)?zhí)峁┝艘环N網(wǎng)絡(luò)蜘蛛的更新控制方法,分別應(yīng)用于多個(gè)控制客戶端,每個(gè)所述控制客戶端分別與控制中心相連接,且每個(gè)所述控制客戶端中設(shè)置有網(wǎng)絡(luò)蜘蛛,所述控制中心設(shè)置有更新數(shù)據(jù)包,所述方法包括:
[0008]步驟A:獲取所述控制中心內(nèi)的更新數(shù)據(jù)包;
[0009]步驟B:依據(jù)所述更新數(shù)據(jù)包,判斷所述網(wǎng)絡(luò)蜘蛛中的蜘蛛程序是否需要更新,得到更新判斷結(jié)果;
[0010]步驟C:在所述更新判斷結(jié)果表明所述網(wǎng)絡(luò)蜘蛛中的蜘蛛程序需要更新時(shí),控制所述蜘蛛程序更新為與所述更新數(shù)據(jù)包相對(duì)應(yīng)的程序。
[0011]在本申請(qǐng)的方法中,優(yōu)選的,所述步驟A具體包括:
[0012]獲取預(yù)設(shè)的時(shí)間間隔長(zhǎng);
[0013]每隔所述時(shí)間間隔長(zhǎng),獲取所述控制中心內(nèi)的更新數(shù)據(jù)包。
[0014]在本申請(qǐng)的方法中,優(yōu)選的,所述步驟B具體包括:
[0015]步驟B1:提取所述更新數(shù)據(jù)包中的更新數(shù)據(jù)信息;
[0016]步驟B2:判斷所述網(wǎng)絡(luò)蜘蛛中蜘蛛程序的當(dāng)前蜘蛛信息是否與所述更新數(shù)據(jù)信息相一致,如果是,執(zhí)行步驟B3,否則,執(zhí)行步驟B4 ;
[0017]步驟B3:生成表明所述蜘蛛程序無(wú)需被更新的更新判斷結(jié)果;[0018]步驟B4:生成表明所述蜘蛛程序需要被更新的更新判斷結(jié)果。
[0019]在本申請(qǐng)的方法中,優(yōu)選的,所述更新數(shù)據(jù)信息包括執(zhí)行代碼更新版本及任務(wù)信息更新版本;
[0020]其中,所述步驟B2進(jìn)一步包括:
[0021]判斷所述當(dāng)前蜘蛛信息中當(dāng)前執(zhí)行代碼版本是否與所述更新數(shù)據(jù)信息中的執(zhí)行代碼更新版本相一致,同時(shí)判斷所述當(dāng)前蜘蛛信息中當(dāng)前任務(wù)信息版本是否與所述更新數(shù)據(jù)信息中的任務(wù)信息更新版本相一致。
[0022]在本申請(qǐng)的方法中,優(yōu)選的,所述步驟C具體包括:
[0023]控制所述網(wǎng)絡(luò)蜘蛛停止當(dāng)前任務(wù);
[0024]提取所述更新數(shù)據(jù)包中的更新內(nèi)容;
[0025]依據(jù)所述更新內(nèi)容,對(duì)所述網(wǎng)絡(luò)蜘蛛中的蜘蛛程序進(jìn)行更新;
[0026]控制更新后的網(wǎng)絡(luò)蜘蛛以當(dāng)前蜘蛛程序執(zhí)行當(dāng)前蜘蛛任務(wù)。
[0027]本申請(qǐng)還提供了一種網(wǎng)絡(luò)蜘蛛的更新控制裝置,分別應(yīng)用于多個(gè)控制客戶端,每個(gè)所述控制客戶端分別與控制中心相連接,且每個(gè)所述控制客戶端中設(shè)置有網(wǎng)絡(luò)蜘蛛,所述控制中心設(shè)置有更新數(shù)據(jù)包,所述裝置包括:
[0028]A包獲取單元,用于獲取所述控制中心內(nèi)的更新數(shù)據(jù)包;
[0029]B更新判斷單元,用于依據(jù)所述更新數(shù)據(jù)包,判斷所述網(wǎng)絡(luò)蜘蛛中的蜘蛛中的蜘蛛程序是否需要更新,得到更新判斷結(jié)果,在所述更新判斷結(jié)果表明所述網(wǎng)絡(luò)蜘蛛中的蜘蛛程序需要更新時(shí),觸發(fā)更新控制單元C ;
[0030]C更新控制單元,用于控制所述蜘蛛程序更新為與所述更新數(shù)據(jù)包相對(duì)應(yīng)的程序。
[0031]在本申請(qǐng)的裝置中,優(yōu)選的,所述A單元具體包括:
[0032]間隔獲取子單元,用于獲取預(yù)設(shè)的時(shí)間間隔長(zhǎng),每隔所述時(shí)間間隔長(zhǎng)觸發(fā)包獲取子單元;
[0033]包獲取子單元,用于獲取控制中心內(nèi)的更新數(shù)據(jù)包。
[0034]在本申請(qǐng)的裝置中,優(yōu)選的,所述B單元具體包括:
[0035]BI更新數(shù)據(jù)提取子單元,用于提取所述更新數(shù)據(jù)包中的更新數(shù)據(jù)信息;
[0036]B2—致判斷子單元,用于判斷所述網(wǎng)絡(luò)蜘蛛中蜘蛛程序的當(dāng)前蜘蛛信息是否與所述更新數(shù)據(jù)信息相一致,如果是,觸發(fā)B3第一結(jié)果生成子單元,否則,觸發(fā)B4第二結(jié)果生成子單元;
[0037]B3第一結(jié)果生成子單元,用于生成表明所述蜘蛛程序無(wú)需被更新的更新判斷結(jié)果;
[0038]B4第二結(jié)果生成子單元,用于生成表明所述蜘蛛程序需要被更新的更新判斷結(jié)果O
[0039]在本申請(qǐng)的裝置中,優(yōu)選的,所述更新數(shù)據(jù)信息包括執(zhí)行代碼更新版本及任務(wù)信息更新版本;
[0040]其中,所述B2單元具體包括:
[0041]第一判斷模塊,用于判斷所述當(dāng)前蜘蛛信息中當(dāng)前執(zhí)行代碼版本是否與所述更新數(shù)據(jù)信息中的執(zhí)行代碼更新版本相一致;
[0042]第二判斷模塊,用于判斷所述當(dāng)前蜘蛛信息中當(dāng)前任務(wù)信息版本是否與所述更新數(shù)據(jù)信息中的任務(wù)信息更新版本相一致;
[0043]相應(yīng)的,在所述第一判斷模塊判斷出所述當(dāng)前蜘蛛信息中當(dāng)前執(zhí)行代碼版本與所述更新數(shù)據(jù)信息中的執(zhí)行代碼更新版本相一致,且所述第二判斷模塊判斷所述當(dāng)前蜘蛛信息中當(dāng)前任務(wù)信息版本與所述更新數(shù)據(jù)信息中的任務(wù)信息更新版本相一致時(shí),觸發(fā)所述第一結(jié)果生成子單元,否則,觸發(fā)所述第二結(jié)果生成子單元。
[0044]在本申請(qǐng)的裝置中,優(yōu)選的,所述C單元具體包括:
[0045]當(dāng)前任務(wù)停止子單元,用于控制所述網(wǎng)絡(luò)蜘蛛停止當(dāng)前任務(wù);
[0046]更新內(nèi)容提取子單元,用于提取所述更新包中的更新內(nèi)容;
[0047]內(nèi)容更新子單元,用于依據(jù)所述更新內(nèi)容,對(duì)所述網(wǎng)絡(luò)蜘蛛中的蜘蛛程序進(jìn)行更新;
[0048]任務(wù)控制執(zhí)行子單元,用于控制更新后的網(wǎng)絡(luò)蜘蛛以當(dāng)前蜘蛛程序執(zhí)行當(dāng)前蜘蛛任務(wù)。
[0049]由上述方案可知,本申請(qǐng)?zhí)峁┑囊环N網(wǎng)絡(luò)蜘蛛的更新控制方法及裝置,分別應(yīng)用于設(shè)置有網(wǎng)絡(luò)蜘蛛的多個(gè)控制客戶端,而每個(gè)該控制客戶端與設(shè)置有更新數(shù)據(jù)包的控制中心相連接,在每個(gè)控制客戶端中,本申請(qǐng)通過獲取控制中心內(nèi)的更新數(shù)據(jù)包,進(jìn)而在依據(jù)該更新數(shù)據(jù)包判斷出網(wǎng)絡(luò)蜘蛛的蜘蛛程序需要更新時(shí),控制所述蜘蛛程序更新為與該更新數(shù)據(jù)包相對(duì)應(yīng)的程序,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)蜘蛛的更新控制。本申請(qǐng)通過設(shè)置與控制客戶端相連接的控制中心,形成網(wǎng)絡(luò)蜘蛛的分布式結(jié)構(gòu),即多個(gè)分別設(shè)置有網(wǎng)絡(luò)蜘蛛的控制客戶端與一個(gè)控制中心組成的分布式結(jié)構(gòu),而在每個(gè)網(wǎng)絡(luò)蜘蛛所在的控制客戶端,通過對(duì)控制中心中的更新數(shù)據(jù)包進(jìn)行獲取,進(jìn)而實(shí)現(xiàn)對(duì)分布式結(jié)構(gòu)的每個(gè)網(wǎng)絡(luò)蜘蛛的蜘蛛程序的更新控制,無(wú)需手工對(duì)每個(gè)網(wǎng)絡(luò)蜘蛛進(jìn)行更新,提高控制更新的效率。
【專利附圖】
【附圖說明】
[0050]圖1為本申請(qǐng)?zhí)峁┑囊环N網(wǎng)絡(luò)蜘蛛的更新控制方法實(shí)施例一的流程圖;
[0051]圖2為本申請(qǐng)實(shí)施例的應(yīng)用示例圖;
[0052]圖3為本申請(qǐng)?zhí)峁┑囊环N網(wǎng)絡(luò)蜘蛛的更新控制方法實(shí)施例二的部分流程圖;
[0053]圖4為本申請(qǐng)?zhí)峁┑囊环N網(wǎng)絡(luò)蜘蛛的更新控制方法實(shí)施例三的部分流程圖;
[0054]圖5為本申請(qǐng)?zhí)峁┑囊环N網(wǎng)絡(luò)蜘蛛的更新控制方法實(shí)施例四的部分流程圖;
[0055]圖6為本申請(qǐng)實(shí)施例四的應(yīng)用流程圖;
[0056]圖7為本申請(qǐng)?zhí)峁┑囊环N網(wǎng)絡(luò)蜘蛛的更新控制裝置實(shí)施例五的結(jié)構(gòu)示意圖;
[0057]圖8為本申請(qǐng)?zhí)峁┑囊环N網(wǎng)絡(luò)蜘蛛的更新控制裝置實(shí)施例六的部分結(jié)構(gòu)示意圖;
[0058]圖9為本申請(qǐng)?zhí)峁┑囊环N網(wǎng)絡(luò)蜘蛛的更新控制裝置實(shí)施例七的部分結(jié)構(gòu)示意圖;
[0059]圖10為本申請(qǐng)?zhí)峁┑囊环N網(wǎng)絡(luò)蜘蛛的更新控制裝置實(shí)施例八的部分結(jié)構(gòu)示意圖;
[0060]圖11為本申請(qǐng)?zhí)峁┑囊环N網(wǎng)絡(luò)蜘蛛的更新控制裝置實(shí)施例九的部分結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0061]下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例。基于本申請(qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。
[0062]實(shí)施例一:對(duì)應(yīng)權(quán)利要求1
[0063]參考圖1,為本申請(qǐng)?zhí)峁┑囊环N網(wǎng)絡(luò)蜘蛛的更新控制方法實(shí)施例一的流程圖,所述方法可以應(yīng)用于分布式結(jié)構(gòu)的每個(gè)控制客戶端中,其中,所述分布式結(jié)構(gòu)如圖2中所示,包括一個(gè)控制中心和多個(gè)控制客戶端,每個(gè)所述控制客戶端分別于該控制中心相連接,且每個(gè)所述控制客戶端中設(shè)置有網(wǎng)絡(luò)蜘蛛,該控制中心中設(shè)置有更新數(shù)據(jù)包,本申請(qǐng)實(shí)施例的更新控制方法分別針對(duì)每個(gè)所述控制客戶端中的網(wǎng)絡(luò)蜘蛛進(jìn)行更新控制,也就是說,每個(gè)所述控制客戶端中均可同時(shí)或非同時(shí)執(zhí)行本申請(qǐng)實(shí)施例一中的更新控制方法。
[0064]本申請(qǐng)實(shí)施例中的方法可以包括以下步驟:
[0065]步驟101:獲取所述控制中心內(nèi)的更新數(shù)據(jù)包。
[0066]其中,所述步驟101即為所述步驟A。
[0067]而所述更新數(shù)據(jù)包可以為控制更新的管理人員根據(jù)實(shí)際需求進(jìn)行配置發(fā)布的更新程序。
[0068]需要說明的是,在所述控制中心所在的分布式結(jié)構(gòu)中,當(dāng)存在一個(gè)控制客戶端來(lái)獲取該控制中心內(nèi)的更新數(shù)據(jù)包時(shí),該控制中心通過獲取該控制客戶端的IP地址等信息,判斷該控制客戶端是否為新添加或第一次參數(shù)分布式更新控制的控制客戶端,如果是,所述控制中心將初始化的數(shù)據(jù)根據(jù)該IP地址導(dǎo)入到預(yù)設(shè)的數(shù)據(jù)庫(kù)中,該初始化的數(shù)據(jù)即為蜘蛛結(jié)點(diǎn)的IP地址、當(dāng)前蜘蛛程序版本及蜘蛛當(dāng)前任務(wù)類型等數(shù)據(jù),之后,所述控制中心將所述數(shù)據(jù)庫(kù)中的當(dāng)前數(shù)據(jù)信息按照預(yù)設(shè)的XML格式返回給該控制客戶端,所述數(shù)據(jù)庫(kù)中的當(dāng)前數(shù)據(jù)信息的XML格式即為所述更新數(shù)據(jù)包,其中,所述數(shù)據(jù)庫(kù)中的當(dāng)前數(shù)據(jù)信息可以由:蜘蛛程序的版本信息、目前活動(dòng)的蜘蛛、蜘蛛需要執(zhí)行的任務(wù)信息等。之后,由本申請(qǐng)實(shí)施例獲取該更新數(shù)據(jù)包。
[0069]其中,所述數(shù)據(jù)庫(kù)可以為SQL server數(shù)據(jù)庫(kù)。
[0070]步驟102:依據(jù)所述更新數(shù)據(jù)包,判斷所述網(wǎng)絡(luò)蜘蛛中的蜘蛛程序是否需要更新,得到更新判斷結(jié)果,在所述更新判斷結(jié)果表明所述網(wǎng)絡(luò)蜘蛛中的蜘蛛程序需要更新時(shí),執(zhí)行步驟103。
[0071]其中,所述步驟102即為所述步驟B。
[0072]步驟103:控制所述蜘蛛程序更新為與所述更新數(shù)據(jù)包相對(duì)應(yīng)的程序。
[0073]其中,所述步驟101至所述步驟103的實(shí)現(xiàn)代碼可以由安裝于該控制客戶端中的蜘蛛控制程序?qū)崿F(xiàn),也就是說,所述控制客戶端中設(shè)置有兩類程序,即:蜘蛛程序和蜘蛛控制程序,所述蜘蛛程序即為所述網(wǎng)絡(luò)蜘蛛自身執(zhí)行任務(wù)如進(jìn)行數(shù)據(jù)抓取的程序,包括任務(wù)執(zhí)行代碼及任務(wù)信息代碼;所述蜘蛛控制程序即為所述控制客戶端中對(duì)其網(wǎng)絡(luò)蜘蛛的蜘蛛程序進(jìn)行控制更新的程序,即為本申請(qǐng)實(shí)施例的實(shí)現(xiàn)程序。
[0074]需要說明的是,所述步驟103即為所述步驟C。
[0075]由上述方案可知,本申請(qǐng)?zhí)峁┑囊环N網(wǎng)絡(luò)蜘蛛的更新控制方法實(shí)施例一,可以分別應(yīng)用于設(shè)置有網(wǎng)絡(luò)蜘蛛的多個(gè)控制客戶端,而每個(gè)該控制客戶端與設(shè)置有更新數(shù)據(jù)包的控制中心相連接,在每個(gè)控制客戶端中,本申請(qǐng)實(shí)施例一通過獲取控制中心內(nèi)的更新數(shù)據(jù)包,進(jìn)而在依據(jù)該更新數(shù)據(jù)包判斷出網(wǎng)絡(luò)蜘蛛的蜘蛛程序需要更新時(shí),控制所述蜘蛛程序更新為與該更新數(shù)據(jù)包相對(duì)應(yīng)的程序,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)蜘蛛的更新控制。本申請(qǐng)實(shí)施例一通過設(shè)置與控制客戶端相連接的控制中心,形成網(wǎng)絡(luò)蜘蛛的分布式結(jié)構(gòu),即多個(gè)分別設(shè)置有網(wǎng)絡(luò)蜘蛛的控制客戶端與一個(gè)控制中心組成的分布式結(jié)構(gòu),而在每個(gè)網(wǎng)絡(luò)蜘蛛所在的控制客戶端,通過對(duì)控制中心中的更新數(shù)據(jù)包進(jìn)行獲取,進(jìn)而實(shí)現(xiàn)對(duì)分布式結(jié)構(gòu)的每個(gè)網(wǎng)絡(luò)蜘蛛的蜘蛛程序的更新控制,無(wú)需手工對(duì)每個(gè)網(wǎng)絡(luò)蜘蛛進(jìn)行更新,提高控制更新的效率。
[0076]在具體實(shí)現(xiàn)中,本申請(qǐng)實(shí)施例一中的網(wǎng)絡(luò)蜘蛛可以應(yīng)用于對(duì)電子商務(wù)相關(guān)數(shù)據(jù)的獲取中,例如對(duì)電商商品的全站數(shù)據(jù)的高頻率及高效率的采集等,由此,進(jìn)一步利用采集到的數(shù)據(jù)提升消費(fèi)者購(gòu)物體驗(yàn),使得網(wǎng)站訪問量上升,增加商品下單量等等。
[0077]實(shí)施例二
[0078]參考圖3,為本申請(qǐng)?zhí)峁┑囊环N網(wǎng)絡(luò)蜘蛛的更新控制方法實(shí)施例二中所述步驟101的流程圖,其中,所述步驟101 (所述步驟A)可以通過以下步驟實(shí)現(xiàn):
[0079]步驟111:獲取預(yù)設(shè)的時(shí)間間隔長(zhǎng)。
[0080]其中,所述時(shí)間間隔長(zhǎng)可以由控制客戶端的用戶或管理員根據(jù)需求預(yù)先設(shè)置,可以為10秒或15秒等。
[0081]步驟112:每隔所述時(shí)間間隔長(zhǎng),獲取所述控制中心內(nèi)的更新數(shù)據(jù)包。
[0082]其中,所述步驟112是指,在所述控制客戶端中,每隔一個(gè)所述時(shí)間間隔長(zhǎng),均會(huì)對(duì)所述控制中心內(nèi)的更新數(shù)據(jù)包進(jìn)行一次獲取,進(jìn)而對(duì)本次獲取到的更新數(shù)據(jù)包進(jìn)行判斷該控制客戶端中網(wǎng)絡(luò)蜘蛛的蜘蛛程序是否需要更新,即為,本申請(qǐng)實(shí)施例二通過設(shè)置控制客戶端中進(jìn)行更新數(shù)據(jù)包獲取的間隔時(shí)間長(zhǎng),實(shí)現(xiàn)對(duì)控制客戶端中網(wǎng)絡(luò)蜘蛛的蜘蛛程序的定期更新控制,保證網(wǎng)絡(luò)蜘蛛的時(shí)效性。
[0083]實(shí)施例三:
[0084]參考圖4,為本申請(qǐng)?zhí)峁┑囊环N網(wǎng)絡(luò)蜘蛛的更新控制方法實(shí)施例三中所述步驟102的實(shí)現(xiàn)流程圖,其中,所述步驟102(所述步驟B)可以包括以下實(shí)現(xiàn)步驟:
[0085]步驟121:提取所述更新數(shù)據(jù)包中的更新數(shù)據(jù)信息。
[0086]其中,所述更新數(shù)據(jù)信息是指,所述控制中心中管理員進(jìn)行配置發(fā)布的數(shù)據(jù),代表網(wǎng)絡(luò)蜘蛛的蜘蛛程序需要更新的最新數(shù)據(jù)。
[0087]需要說明的是,所述步驟121即為所述步驟BI。
[0088]步驟122:判斷所述網(wǎng)絡(luò)蜘蛛中蜘蛛程序的當(dāng)前蜘蛛信息是否與所述更新數(shù)據(jù)信息相一致,如果是,執(zhí)行步驟123,否則,執(zhí)行步驟124。
[0089]其中,所述蜘蛛程序的當(dāng)前蜘蛛信息可以為所述蜘蛛程序中的關(guān)鍵字信息,其代表所述蜘蛛程序的當(dāng)前版本信息。在所述步驟122中,通過將所述蜘蛛程序的當(dāng)前蜘蛛信息與所述更新數(shù)據(jù)信息進(jìn)行一致性比對(duì),可以得出所述蜘蛛程序是否需要被更新的信息。
[0090]需要說明的是,所述步驟122即為所述步驟B2。
[0091]步驟123:生成表明所述蜘蛛程序無(wú)需被更新的更新判斷結(jié)果。
[0092]其中,在所述步驟122中判斷出所述蜘蛛程序的當(dāng)前蜘蛛信息與所述更新數(shù)據(jù)信息一致時(shí),表明所述蜘蛛程序?yàn)樽钚轮┲氤绦颍瑹o(wú)需被更新,此時(shí)執(zhí)行步驟123生成表明所述蜘蛛程序無(wú)需被更新的更新判斷結(jié)果。
[0093]需要說明的是,所述步驟123即為所述步驟B3。[0094]步驟124:生成表明所述蜘蛛程序需要被更新的更新判斷結(jié)果。
[0095]其中,在所述步驟122中判斷出所述蜘蛛程序的當(dāng)前蜘蛛信息與所述更新數(shù)據(jù)信息不一致時(shí),表明所述蜘蛛程序并非為最新的蜘蛛程序,需要被更新,此時(shí)執(zhí)行步驟124生成表明所述蜘蛛程序需要被更新的更新判斷結(jié)果。
[0096]需要說明的是,所述步驟124即為所述步驟B4。
[0097]具體的,在本申請(qǐng)的以上各個(gè)方法實(shí)施例中,所述更新數(shù)據(jù)信息可以包括執(zhí)行代碼更新版本及任務(wù)信息更新版本,其中,所述執(zhí)行代碼更新版本是指,網(wǎng)絡(luò)蜘蛛進(jìn)行數(shù)據(jù)抓取時(shí)的任務(wù)執(zhí)行代碼的最新版本,所述任務(wù)信息更新版本是指:網(wǎng)絡(luò)蜘蛛進(jìn)行數(shù)據(jù)抓取的抓取目標(biāo)及抓取時(shí)間等任務(wù)信息的最新版本。
[0098]相應(yīng)的,在本申請(qǐng)的以上各個(gè)方法實(shí)施例中,所述步驟122(所述步驟B2)在判斷所述網(wǎng)絡(luò)蜘蛛的當(dāng)前蜘蛛信息是否與所述更新數(shù)據(jù)信息相一致時(shí),進(jìn)一步包括執(zhí)行以下兩個(gè)判斷:
[0099]第一判斷:判斷所述當(dāng)前蜘蛛信息中當(dāng)前執(zhí)行代碼版本是否與所述更新數(shù)據(jù)信息中的執(zhí)行代碼更新版本相一致;
[0100]第二判斷:判斷所述當(dāng)前蜘蛛信息中當(dāng)前任務(wù)信息版本是否與所述更新數(shù)據(jù)信息中的任務(wù)信息更新版本相一致。
[0101]其中,所述當(dāng)前執(zhí)行代碼版本及所述當(dāng)前任務(wù)信息版本,可以由其各自的更新時(shí)間進(jìn)行表示,即在所述步驟122的兩個(gè)判斷為:判斷當(dāng)前蜘蛛信息中的當(dāng)前執(zhí)行代碼更新時(shí)間及當(dāng)前任務(wù)信息的更新時(shí)間是否與更新數(shù)據(jù)信息中的更新時(shí)間相一致。
[0102]所述步驟122中,只有所述步驟122的兩個(gè)判斷的判斷結(jié)果均為一致時(shí),也就是說,所述當(dāng)前蜘蛛信息中當(dāng)前執(zhí)行代碼版本與所述更新數(shù)據(jù)信息中的執(zhí)行代碼更新版本相一致,同時(shí)所述當(dāng)前任務(wù)信息版本與所述更新數(shù)據(jù)信息中的任務(wù)信息更新版本相一致,此時(shí),表明所述當(dāng)前蜘蛛信息與所述更新數(shù)據(jù)信息完全一致,即為所述網(wǎng)絡(luò)蜘蛛為與所述更新數(shù)據(jù)包相一致,無(wú)需對(duì)該網(wǎng)絡(luò)蜘蛛進(jìn)行更新,即可執(zhí)行步驟123,否則,表明所述當(dāng)前蜘蛛信息與所述更新數(shù)據(jù)信息中存在不一致的地方,此時(shí)執(zhí)行步驟124。
[0103]實(shí)施例四
[0104]參考圖5,為本申請(qǐng)?zhí)峁┑囊环N網(wǎng)絡(luò)蜘蛛的更新控制方法實(shí)施例四中所述步驟103的流程圖,其中,所述步驟103(所述步驟C)可以包括以下步驟:
[0105]步驟131:控制所述網(wǎng)絡(luò)蜘蛛停止當(dāng)前任務(wù)。
[0106]其中,所述步驟131中控制所述網(wǎng)絡(luò)蜘蛛停止當(dāng)前任務(wù)是指,停止所述網(wǎng)絡(luò)蜘蛛對(duì)當(dāng)前執(zhí)行任務(wù)的暫停。需要說明的是,在所述步驟131控制所述網(wǎng)絡(luò)蜘蛛停止當(dāng)前任務(wù)的同時(shí),需要保存當(dāng)前任務(wù)的配置信息。
[0107]步驟132:提取所述更新數(shù)據(jù)包中的更新內(nèi)容。
[0108]其中,所述更新內(nèi)容可以理解為所述步驟102中判斷出與所述蜘蛛程序相比,需要更新的數(shù)據(jù)內(nèi)容。
[0109]步驟133:依據(jù)所述更新內(nèi)容,對(duì)所述網(wǎng)絡(luò)蜘蛛中的蜘蛛程序進(jìn)行更新。
[0110]具體的,所述蜘蛛程序包括有包括任務(wù)執(zhí)行代碼及任務(wù)信息代碼,此時(shí),所述步驟133即為:依據(jù)所述更新內(nèi)容,對(duì)所述任務(wù)執(zhí)行代碼和/或任務(wù)信息代碼進(jìn)行更新。
[0111]需要說明的是,在所述步驟132中提取到的更新內(nèi)容中只包括有執(zhí)行代碼更新內(nèi)容時(shí),所述步驟133的具體實(shí)現(xiàn)步驟為:對(duì)所述蜘蛛程序中的任務(wù)執(zhí)行代碼更新為所述執(zhí)行代碼更新內(nèi)容,例如,所述步驟133中,對(duì)所述蜘蛛程序中的實(shí)現(xiàn)代碼如進(jìn)行數(shù)據(jù)抓取的執(zhí)行代碼等進(jìn)行改寫更新為與所述更新內(nèi)容中最新的執(zhí)行代碼,而不對(duì)所述蜘蛛程序中的任務(wù)信息代碼如數(shù)據(jù)抓取目標(biāo)及數(shù)據(jù)抓取時(shí)間等信息進(jìn)行更新操作;
[0112]在所述步驟132中提取到的更新內(nèi)容中只包括有任務(wù)信息更新內(nèi)容時(shí),所述步驟133的具體實(shí)現(xiàn)步驟為:對(duì)所述蜘蛛程序中的任務(wù)信息代碼更新為所述任務(wù)信息更新內(nèi)容,例如,所述步驟133中,對(duì)所述蜘蛛程序中的任務(wù)信息代碼如數(shù)據(jù)抓取目標(biāo)及數(shù)據(jù)抓取時(shí)間等信息進(jìn)行改寫更新為與所述更新內(nèi)容中最新的任務(wù)信息,而不對(duì)所述蜘蛛程序中的任務(wù)執(zhí)行代碼進(jìn)行更新操作;
[0113]在所述步驟132中提取到的更新內(nèi)容中包括有執(zhí)行代碼更新內(nèi)容及任務(wù)信息更新內(nèi)容時(shí),所述步驟133的具體實(shí)現(xiàn)步驟為:對(duì)所述蜘蛛程序中的任務(wù)執(zhí)行代碼更新為所述執(zhí)行代碼更新內(nèi)容,同時(shí)對(duì)所述蜘蛛程序中的任務(wù)信息代碼更新為所述任務(wù)信息更新內(nèi)容,完成蜘蛛程序的更新,例如,所述步驟133中,對(duì)所述蜘蛛程序中的實(shí)現(xiàn)代碼如進(jìn)行數(shù)據(jù)抓取的執(zhí)行代碼等進(jìn)行改寫更新為與所述更新內(nèi)容中最新的執(zhí)行代碼,同時(shí)對(duì)所述蜘蛛程序中的任務(wù)信息代碼如數(shù)據(jù)抓取目標(biāo)及數(shù)據(jù)抓取時(shí)間等信息進(jìn)行更新操作,更新為所述任務(wù)息更新內(nèi)容。
[0114]步驟134:控制更新后的網(wǎng)絡(luò)蜘蛛以當(dāng)前蜘蛛程序執(zhí)行當(dāng)前蜘蛛任務(wù)。
[0115]其中,所述步驟134中是指,控制更新蜘蛛程序之后的網(wǎng)絡(luò)蜘蛛運(yùn)行更新后的任務(wù)執(zhí)行代碼,進(jìn)而執(zhí)行更新后的任務(wù)信息,如數(shù)據(jù)抓取目標(biāo)及抓取時(shí)間等。
[0116]如圖6中所示,為本申請(qǐng)實(shí)施例在具體應(yīng)用中的流程圖:
[0117]首先,由管理人員發(fā)布配置更新程序,存儲(chǔ)到控制中心中并生成更新數(shù)據(jù)包,在控制客戶端中,對(duì)該更新數(shù)據(jù)包進(jìn)行檢查更新,在需要進(jìn)行更新時(shí),觸發(fā)網(wǎng)絡(luò)蜘蛛停止當(dāng)前任務(wù)保存任務(wù)配置,之后控制客戶端下載更新數(shù)據(jù)包中的更新內(nèi)容并更新網(wǎng)絡(luò)蜘蛛,再觸發(fā)所述網(wǎng)絡(luò)蜘蛛回復(fù)任務(wù)配置,重新啟動(dòng),按照更新的任務(wù)信息以更新的執(zhí)行代碼執(zhí)行任務(wù)。
[0118]實(shí)施例五
[0119]參考圖7,為本申請(qǐng)?zhí)峁┑囊环N網(wǎng)絡(luò)蜘蛛的更新控制裝置實(shí)施例五的結(jié)構(gòu)示意圖,所述裝置可以應(yīng)用于分布式結(jié)構(gòu)的每個(gè)控制客戶端中,其中,所述分布式結(jié)構(gòu)如圖2中所示,包括一個(gè)控制中心和多個(gè)控制客戶端,每個(gè)所述控制客戶端分別于該控制中心相連接,且每個(gè)所述控制客戶端中設(shè)置有網(wǎng)絡(luò)蜘蛛,該控制中心中設(shè)置有更新數(shù)據(jù)包,本申請(qǐng)實(shí)施例的更新控制裝置分別針對(duì)每個(gè)所述控制客戶端中的網(wǎng)絡(luò)蜘蛛進(jìn)行更新控制,也就是說,每個(gè)所述控制客戶端中均可同時(shí)設(shè)置本申請(qǐng)實(shí)施例中的更新控制裝置,并同時(shí)或非同時(shí)運(yùn)行本申請(qǐng)實(shí)施例中的更新控制裝置。
[0120]其中,本申請(qǐng)實(shí)施例中的裝置可以包括:
[0121]包獲取單元701,用于獲取所述控制中心內(nèi)的更新數(shù)據(jù)包。
[0122]其中,所述更新數(shù)據(jù)包可以為控制更新的管理人員根據(jù)實(shí)際需求進(jìn)行配置發(fā)布的更新程序。
[0123]需要說明的是,在所述控制中心所在的分布式結(jié)構(gòu)中,當(dāng)存在一個(gè)控制客戶端來(lái)獲取該控制中心內(nèi)的更新數(shù)據(jù)包時(shí),該控制中心通過獲取該控制客戶端的IP地址等信息,判斷該控制客戶端是否為新添加或第一次參數(shù)分布式更新控制的控制客戶端,如果是,所述控制中心將初始化的數(shù)據(jù)根據(jù)該IP地址導(dǎo)入到預(yù)設(shè)的數(shù)據(jù)庫(kù)中,該初始化的數(shù)據(jù)即為蜘蛛結(jié)點(diǎn)的IP地址、當(dāng)前蜘蛛程序版本及蜘蛛當(dāng)前任務(wù)類型等數(shù)據(jù),之后,所述控制中心將所述數(shù)據(jù)庫(kù)中的當(dāng)前數(shù)據(jù)信息按照預(yù)設(shè)的XML格式返回給該控制客戶端,所述數(shù)據(jù)庫(kù)中的當(dāng)前數(shù)據(jù)信息的XML格式即為所述更新數(shù)據(jù)包,其中,所述數(shù)據(jù)庫(kù)中的當(dāng)前數(shù)據(jù)信息可以由:蜘蛛程序的版本信息、目前活動(dòng)的蜘蛛、蜘蛛需要執(zhí)行的任務(wù)信息等。之后,由本申請(qǐng)實(shí)施例獲取該更新數(shù)據(jù)包。
[0124]其中,所述數(shù)據(jù)庫(kù)可以為SQL server數(shù)據(jù)庫(kù)。
[0125]需要說明的是,所述包獲取單元701即為所述A包獲取單元或所述A單元。
[0126]更新判斷單元702,用于依據(jù)所述更新數(shù)據(jù)包,判斷所述網(wǎng)絡(luò)蜘蛛中的蜘蛛中的蜘蛛程序是否需要更新,得到更新判斷結(jié)果,在所述更新判斷結(jié)果表明所述網(wǎng)絡(luò)蜘蛛中的蜘蛛程序需要更新時(shí),觸發(fā)更新控制單元703。
[0127]需要說明的是,所述更新判斷單元702即為所述B更新判斷單元或所述B單元。
[0128]更新控制單元703,用于控制所述蜘蛛程序更新為與所述更新數(shù)據(jù)包相對(duì)應(yīng)的程序。
[0129]其中,所述包獲取單元701、所述更新判斷單元702及所述更新控制單元703的實(shí)現(xiàn)代碼可以由安裝于該控制客戶端中的蜘蛛控制程序?qū)崿F(xiàn),也就是說,所述控制客戶端中設(shè)置有兩類程序,即:蜘蛛程序和蜘蛛控制程序,所述蜘蛛程序即為所述網(wǎng)絡(luò)蜘蛛自身執(zhí)行任務(wù)如進(jìn)行數(shù)據(jù)抓取的程序,包括任務(wù)執(zhí)行代碼及任務(wù)信息代碼;所述蜘蛛控制程序即為所述控制客戶端中對(duì)其網(wǎng)絡(luò)蜘蛛的蜘蛛程序進(jìn)行控制更新的程序,即為本申請(qǐng)實(shí)施例的實(shí)現(xiàn)程序。
[0130]需要說明的是,所述更新控制單元703即為所述C更新控制單元或所述C單元。
[0131]由上述方案可知,本申請(qǐng)?zhí)峁┑囊环N網(wǎng)絡(luò)蜘蛛的更新控制裝置實(shí)施例五,可以分別應(yīng)用于設(shè)置有網(wǎng)絡(luò)蜘蛛的多個(gè)控制客戶端,而每個(gè)該控制客戶端與設(shè)置有更新數(shù)據(jù)包的控制中心相連接,在每個(gè)控制客戶端中,本申請(qǐng)實(shí)施例五通過獲取控制中心內(nèi)的更新數(shù)據(jù)包,進(jìn)而在依據(jù)該更新數(shù)據(jù)包判斷出網(wǎng)絡(luò)蜘蛛的蜘蛛程序需要更新時(shí),控制所述蜘蛛程序更新為與該更新數(shù)據(jù)包相對(duì)應(yīng)的程序,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)蜘蛛的更新控制。本申請(qǐng)實(shí)施例五通過設(shè)置與控制客戶端相連接的控制中心,形成網(wǎng)絡(luò)蜘蛛的分布式結(jié)構(gòu),即多個(gè)分別設(shè)置有網(wǎng)絡(luò)蜘蛛的控制客戶端與一個(gè)控制中心組成的分布式結(jié)構(gòu),而在每個(gè)網(wǎng)絡(luò)蜘蛛所在的控制客戶端,通過對(duì)控制中心中的更新數(shù)據(jù)包進(jìn)行獲取,進(jìn)而實(shí)現(xiàn)對(duì)分布式結(jié)構(gòu)的每個(gè)網(wǎng)絡(luò)蜘蛛的蜘蛛程序的更新控制,無(wú)需手工對(duì)每個(gè)網(wǎng)絡(luò)蜘蛛進(jìn)行更新,提高控制更新的效率。
[0132]實(shí)施例六
[0133]參考圖8,為本申請(qǐng)?zhí)峁┑囊环N網(wǎng)絡(luò)蜘蛛的更新控制裝置實(shí)施例六中所述包獲取單元701的結(jié)構(gòu)示意圖,其中,所述包獲取單元701 (所述A單元)可以包括:
[0134]間隔獲取子單元711,用于獲取預(yù)設(shè)的時(shí)間間隔長(zhǎng),每隔所述時(shí)間間隔長(zhǎng)觸發(fā)包獲取子單元712。
[0135]其中,所述時(shí)間間隔長(zhǎng)可以由控制客戶端的用戶或管理員根據(jù)需求預(yù)先設(shè)置,可以為10秒或15秒等。
[0136]包獲取子單元712,用于獲取控制中心內(nèi)的更新數(shù)據(jù)包。
[0137]其中,本申請(qǐng)實(shí)施例中所述包獲取單元701的結(jié)構(gòu)實(shí)現(xiàn)是指,在所述控制客戶端中,每隔一個(gè)所述時(shí)間間隔長(zhǎng),均會(huì)對(duì)所述控制中心內(nèi)的更新數(shù)據(jù)包進(jìn)行一次獲取,進(jìn)而對(duì)本次獲取到的更新數(shù)據(jù)包進(jìn)行判斷該控制客戶端中網(wǎng)絡(luò)蜘蛛的蜘蛛程序是否需要更新,即為,本申請(qǐng)實(shí)施例通過設(shè)置控制客戶端中進(jìn)行更新數(shù)據(jù)包獲取的間隔時(shí)間長(zhǎng),實(shí)現(xiàn)對(duì)控制客戶端中網(wǎng)絡(luò)蜘蛛的蜘蛛程序的定期更新控制,保證網(wǎng)絡(luò)蜘蛛的時(shí)效性。
[0138]實(shí)施例七
[0139]參考圖9,為本申請(qǐng)?zhí)峁┑囊环N網(wǎng)絡(luò)蜘蛛的更新控制裝置實(shí)施例七中所述更新判斷單元702的結(jié)構(gòu)示意圖,其中,所述更新判斷單元702(所述B單元)可以包括:
[0140]更新數(shù)據(jù)提取子單元721,用于提取所述更新數(shù)據(jù)包中的更新數(shù)據(jù)信息。
[0141]其中,所述更新數(shù)據(jù)信息是指,所述控制中心中管理員進(jìn)行配置發(fā)布的數(shù)據(jù),代表網(wǎng)絡(luò)蜘蛛的蜘蛛程序需要更新的最新數(shù)據(jù)。
[0142]需要說明的是,所述更新數(shù)據(jù)提取子單元721即為所述BI更新數(shù)據(jù)提取子單元。
[0143]一致判斷子單元722,用于判斷所述網(wǎng)絡(luò)蜘蛛中蜘蛛程序的當(dāng)前蜘蛛信息是否與所述更新數(shù)據(jù)信息相一致,如果是,觸發(fā)第一結(jié)果生成子單元723,否則,觸發(fā)第二結(jié)果生成子單元724。
[0144]其中,所述蜘蛛程序的當(dāng)前蜘蛛信息,可以為所述蜘蛛程序中的關(guān)鍵字信息,其代表所述蜘蛛程序的當(dāng)前版本信息。在所述一致判斷子單元722中,通過將所述蜘蛛程序的當(dāng)前蜘蛛信息與所述更新數(shù)據(jù)信息進(jìn)行一致性比對(duì),可以得出所述蜘蛛程序是否需要被更新的信息。
[0145]需要說明的是,所述一致判斷子單元722即為所述B2—致判斷子單元或所述B2單元。
[0146]第一結(jié)果生成子單元723,用于生成表明所述蜘蛛程序無(wú)需被更新的更新判斷結(jié)果O
[0147]其中,在所述一致判斷子單元722中判斷出所述蜘蛛程序的當(dāng)前蜘蛛信息與所述更新數(shù)據(jù)信息一致時(shí),表明所述蜘蛛程序?yàn)樽钚轮┲氤绦?,無(wú)需被更新,此時(shí)觸發(fā)執(zhí)行所述第一結(jié)果生成子單元723生成表明所述蜘蛛程序無(wú)需被更新的更新判斷結(jié)果。
[0148]需要說明的是,所述第一結(jié)果生成子單元723即為所述B3第一結(jié)果生成子單元。
[0149]第二結(jié)果生成子單元724,用于生成表明所述蜘蛛程序需要被更新的更新判斷結(jié)果O
[0150]其中,在所述一致判斷子單元722中判斷出所述蜘蛛程序的當(dāng)前蜘蛛信息與所述更新數(shù)據(jù)信息不一致時(shí),表明所述蜘蛛程序并非為最新的蜘蛛程序,需要被更新,此時(shí)觸發(fā)執(zhí)行所述第二結(jié)果生成子單元724生成表明所述蜘蛛程序需要被更新的更新判斷結(jié)果。
[0151]需要說明的是,所述第二結(jié)果生成子單元724即為所述B4第二結(jié)果生成子單元。
[0152]實(shí)施例八
[0153]具體的,在本申請(qǐng)的以上各個(gè)裝置實(shí)施例中,所述更新數(shù)據(jù)信息可以包括執(zhí)行代碼更新版本及任務(wù)信息更新版本,其中,所述執(zhí)行代碼更新版本是指,網(wǎng)絡(luò)蜘蛛進(jìn)行數(shù)據(jù)抓取時(shí)的任務(wù)執(zhí)行代碼的最新版本,所述任務(wù)信息更新版本是指:網(wǎng)絡(luò)蜘蛛進(jìn)行數(shù)據(jù)抓取的抓取目標(biāo)及抓取時(shí)間等任務(wù)信息的最新版本。
[0154]相應(yīng)的,在本申請(qǐng)的以上各個(gè)裝置實(shí)施例中,所述一致判斷子單元722可以通過如圖10中的結(jié)構(gòu)實(shí)現(xiàn)。參考圖10,為本申請(qǐng)?zhí)峁┑囊环N網(wǎng)絡(luò)蜘蛛的更新控制裝置實(shí)施例八中所述一致判斷子單元722 (所述B2單元)的結(jié)構(gòu)示意圖,其中,所述一致判斷子單元722可以包括以下兩個(gè)判斷模塊:
[0155]第一判斷模塊1001,用于判斷所述當(dāng)前蜘蛛信息中當(dāng)前執(zhí)行代碼版本是否與所述更新數(shù)據(jù)信息中的執(zhí)行代碼更新版本相一致。
[0156]第二判斷模塊1002,用于判斷所述當(dāng)前蜘蛛信息中當(dāng)前任務(wù)信息版本是否與所述更新數(shù)據(jù)信息中的任務(wù)信息更新版本相一致。
[0157]其中,所述當(dāng)前執(zhí)行代碼版本及所述當(dāng)前任務(wù)信息版本,可以由其各自的更新時(shí)間進(jìn)行表示,即在所述一致判斷子單元722的兩個(gè)判斷模塊中,為判斷當(dāng)前蜘蛛信息中的當(dāng)前執(zhí)行代碼更新時(shí)間及當(dāng)前任務(wù)信息的更新時(shí)間是否與更新數(shù)據(jù)信息中的更新時(shí)間相—致。
[0158]相應(yīng)的,在所述第一判斷模塊1001判斷出所述當(dāng)前蜘蛛信息中當(dāng)前執(zhí)行代碼版本與所述更新數(shù)據(jù)信息中的執(zhí)行代碼更新版本相一致,且所述第二判斷模塊1002判斷所述當(dāng)前蜘蛛信息中當(dāng)前任務(wù)信息版本與所述更新數(shù)據(jù)信息中的任務(wù)信息更新版本相一致時(shí),此時(shí),表明所述當(dāng)前蜘蛛信息與所述更新數(shù)據(jù)信息完全一致,即為所述網(wǎng)絡(luò)蜘蛛為與所述更新數(shù)據(jù)包相一致,無(wú)需對(duì)該網(wǎng)絡(luò)蜘蛛進(jìn)行更新,觸發(fā)所述第一結(jié)果生成子單元723,否貝U,表明所述當(dāng)前蜘蛛信息與所述更新數(shù)據(jù)信息中存在不一致的地方,即觸發(fā)所述第二結(jié)果生成子單元724。
[0159]實(shí)施例九
[0160]參考圖11,為本申請(qǐng)?zhí)峁┑囊环N網(wǎng)絡(luò)蜘蛛的更新控制裝置實(shí)施例九中所述控制更新單元703的結(jié)構(gòu)示意圖,其中,所述控制更新單元703 (所述C單元)可以包括:
[0161]當(dāng)前任務(wù)停止子單元731,用于控制所述網(wǎng)絡(luò)蜘蛛停止當(dāng)前任務(wù)。
[0162]其中,所述當(dāng)前任務(wù)停止子單元731中控制所述網(wǎng)絡(luò)蜘蛛停止當(dāng)前任務(wù)是指,停止所述網(wǎng)絡(luò)蜘蛛對(duì)當(dāng)前執(zhí)行任務(wù)的暫停。需要說明的是,在所述當(dāng)前任務(wù)停止子單元731控制所述網(wǎng)絡(luò)蜘蛛停止當(dāng)前任務(wù)的同時(shí),需要保存當(dāng)前任務(wù)的配置信息。
[0163]更新內(nèi)容提取子單元732,用于提取所述更新包中的更新內(nèi)容。
[0164]其中,所述更新內(nèi)容可以理解為所述更新判斷單元702中判斷出與所述蜘蛛程序相比,需要更新的數(shù)據(jù)內(nèi)容。
[0165]內(nèi)容更新子單元733,用于依據(jù)所述更新內(nèi)容,對(duì)所述網(wǎng)絡(luò)蜘蛛中的蜘蛛程序進(jìn)行更新。
[0166]具體的,所述蜘蛛程序包括有包括任務(wù)執(zhí)行代碼及任務(wù)信息代碼,此時(shí),所述內(nèi)容更新子單元733即為:依據(jù)所述更新內(nèi)容,對(duì)所述任務(wù)執(zhí)行代碼和/或任務(wù)信息代碼進(jìn)行更新。
[0167]需要說明的是,在所述更新內(nèi)容提取子單元732提取到的更新內(nèi)容中只包括有執(zhí)行代碼更新內(nèi)容時(shí),所述內(nèi)容更新子單元733的具體實(shí)現(xiàn)功能為:對(duì)所述蜘蛛程序中的任務(wù)執(zhí)行代碼更新為所述執(zhí)行代碼更新內(nèi)容,例如,所述內(nèi)容更新子單元733對(duì)所述蜘蛛程序中的實(shí)現(xiàn)代碼如進(jìn)行數(shù)據(jù)抓取的執(zhí)行代碼等進(jìn)行改寫更新為與所述更新內(nèi)容中最新的執(zhí)行代碼,而不對(duì)所述蜘蛛程序中的任務(wù)信息代碼如數(shù)據(jù)抓取目標(biāo)及數(shù)據(jù)抓取時(shí)間等信息進(jìn)行更新操作;
[0168]在所述更新內(nèi)容提取子單元732提取到的更新內(nèi)容中只包括有任務(wù)信息更新內(nèi)容時(shí),所述內(nèi)容更新子單元733的具體實(shí)現(xiàn)功能為:對(duì)所述蜘蛛程序中的任務(wù)信息代碼更新為所述任務(wù)信息更新內(nèi)容,例如,所述內(nèi)容更新子單元733對(duì)所述蜘蛛程序中的任務(wù)信息代碼如數(shù)據(jù)抓取目標(biāo)及數(shù)據(jù)抓取時(shí)間等信息進(jìn)行改寫更新為與所述更新內(nèi)容中最新的任務(wù)信息,而不對(duì)所述蜘蛛程序中的任務(wù)執(zhí)行代碼進(jìn)行更新操作;
[0169]在所述更新內(nèi)容提取子單元732提取到的更新內(nèi)容中包括有執(zhí)行代碼更新內(nèi)容及任務(wù)信息更新內(nèi)容時(shí),所述內(nèi)容更新子單元733的具體實(shí)現(xiàn)功能為:對(duì)所述蜘蛛程序中的任務(wù)執(zhí)行代碼更新為所述執(zhí)行代碼更新內(nèi)容,同時(shí)對(duì)所述蜘蛛程序中的任務(wù)信息代碼更新為所述任務(wù)信息更新內(nèi)容,完成蜘蛛程序的更新,例如,所述內(nèi)容更新子單元733對(duì)所述蜘蛛程序中的實(shí)現(xiàn)代碼如進(jìn)行數(shù)據(jù)抓取的執(zhí)行代碼等進(jìn)行改寫更新為與所述更新內(nèi)容中最新的執(zhí)行代碼,同時(shí)對(duì)所述蜘蛛程序中的任務(wù)信息代碼如數(shù)據(jù)抓取目標(biāo)及數(shù)據(jù)抓取時(shí)間等信息進(jìn)行更新操作,更新為所述任務(wù)信息更新內(nèi)容。
[0170]任務(wù)控制執(zhí)行子單元734,用于控制更新后的網(wǎng)絡(luò)蜘蛛以當(dāng)前蜘蛛程序執(zhí)行當(dāng)前蜘蛛任務(wù)。
[0171]其中,所述任務(wù)控制執(zhí)行子單元734是指,控制更新蜘蛛程序之后的網(wǎng)絡(luò)蜘蛛運(yùn)行更新后的任務(wù)執(zhí)行代碼,進(jìn)而執(zhí)行更新后的任務(wù)信息,如數(shù)據(jù)抓取目標(biāo)及抓取時(shí)間等。
[0172]需要說明的是,本申請(qǐng)中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。
[0173]最后,還需要說明的是,在本申請(qǐng)中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。[0174]以上對(duì)本申請(qǐng)所提供的一種網(wǎng)絡(luò)蜘蛛的更新控制方法及裝置進(jìn)行了詳細(xì)介紹,本申請(qǐng)中應(yīng)用了具體個(gè)例對(duì)本申請(qǐng)的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本申請(qǐng)的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請(qǐng)的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本申請(qǐng)內(nèi)容不應(yīng)理解為對(duì)本申請(qǐng)的限制。
【權(quán)利要求】
1.一種網(wǎng)絡(luò)蜘蛛的更新控制方法,其特征在于,分別應(yīng)用于多個(gè)控制客戶端,每個(gè)所述控制客戶端分別與控制中心相連接,且每個(gè)所述控制客戶端中設(shè)置有網(wǎng)絡(luò)蜘蛛,所述控制中心設(shè)置有更新數(shù)據(jù)包,所述方法包括: 步驟A:獲取所述控制中心內(nèi)的更新數(shù)據(jù)包; 步驟B:依據(jù)所述更新數(shù)據(jù)包,判斷所述網(wǎng)絡(luò)蜘蛛中的蜘蛛程序是否需要更新,得到更新判斷結(jié)果; 步驟C:在所述更新判斷結(jié)果表明所述網(wǎng)絡(luò)蜘蛛中的蜘蛛程序需要更新時(shí),控制所述蜘蛛程序更新為與所述更新數(shù)據(jù)包相對(duì)應(yīng)的程序。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟A具體包括: 獲取預(yù)設(shè)的時(shí)間間隔長(zhǎng); 每隔所述時(shí)間間隔長(zhǎng),獲取所述控制中心內(nèi)的更新數(shù)據(jù)包。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述步驟B具體包括: 步驟B1:提取所述更新數(shù)據(jù)包中的更新數(shù)據(jù)信息; 步驟B2:判斷所述網(wǎng)絡(luò)蜘蛛中蜘蛛程序的當(dāng)前蜘蛛信息是否與所述更新數(shù)據(jù)信息相一致,如果是,執(zhí)行步驟B3,否則,執(zhí)行步驟B4 ; 步驟B3:生成表明所述蜘蛛程序無(wú)需被更新的更新判斷結(jié)果; 步驟B4:生成表明所述蜘蛛程序需要被更新的更新判斷結(jié)果。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述更新數(shù)據(jù)信息包括執(zhí)行代碼更新版本及任務(wù)信息更新版本; 其中,所述步驟B2進(jìn)一步包括: 判斷所述當(dāng)前蜘蛛信息中當(dāng)前執(zhí)行代碼版本是否與所述更新數(shù)據(jù)信息中的執(zhí)行代碼更新版本相一致,同時(shí)判斷所述當(dāng)前蜘蛛信息中當(dāng)前任務(wù)信息版本是否與所述更新數(shù)據(jù)信息中的任務(wù)信息更新版本相一致。
5.根據(jù)權(quán)利要求1、2或4所述的方法,其特征在于,所述步驟C具體包括: 控制所述網(wǎng)絡(luò)蜘蛛停止當(dāng)前任務(wù); 提取所述更新數(shù)據(jù)包中的更新內(nèi)容; 依據(jù)所述更新內(nèi)容,對(duì)所述網(wǎng)絡(luò)蜘蛛中的蜘蛛程序進(jìn)行更新; 控制更新后的網(wǎng)絡(luò)蜘蛛以當(dāng)前蜘蛛程序執(zhí)行當(dāng)前蜘蛛任務(wù)。
6.一種網(wǎng)絡(luò)蜘蛛的更新控制裝置,其特征在于,分別應(yīng)用于多個(gè)控制客戶端,每個(gè)所述控制客戶端分別與控制中心相連接,且每個(gè)所述控制客戶端中設(shè)置有網(wǎng)絡(luò)蜘蛛,所述控制中心設(shè)置有更新數(shù)據(jù)包,所述裝置包括: A包獲取單元,用于獲取所述控制中心內(nèi)的更新數(shù)據(jù)包; B更新判斷單元,用于依據(jù)所述更新數(shù)據(jù)包,判斷所述網(wǎng)絡(luò)蜘蛛中的蜘蛛中的蜘蛛程序是否需要更新,得到更新判斷結(jié)果,在所述更新判斷結(jié)果表明所述網(wǎng)絡(luò)蜘蛛中的蜘蛛程序需要更新時(shí),觸發(fā)更新控制單元C ; C更新控制單元,用于控制所述蜘蛛程序更新為與所述更新數(shù)據(jù)包相對(duì)應(yīng)的程序。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述A單元具體包括: 間隔獲取子單元,用于獲取預(yù)設(shè)的時(shí)間間隔長(zhǎng),每隔所述時(shí)間間隔長(zhǎng)觸發(fā)包獲取子單元;包獲取子單元,用于獲取控制中心內(nèi)的更新數(shù)據(jù)包。
8.根據(jù)權(quán)利要求6或7所述的裝置,其特征在于,所述B單元具體包括: BI更新數(shù)據(jù)提取子單元,用于提取所述更新數(shù)據(jù)包中的更新數(shù)據(jù)信息; B2 一致判斷子單元,用于判斷所述網(wǎng)絡(luò)蜘蛛中蜘蛛程序的當(dāng)前蜘蛛信息是否與所述更新數(shù)據(jù)信息相一致,如果是,觸發(fā)B3第一結(jié)果生成子單元,否則,觸發(fā)B4第二結(jié)果生成子單元; B3第一結(jié)果生成子單元,用于生成表明所述蜘蛛程序無(wú)需被更新的更新判斷結(jié)果; B4第二結(jié)果生成子單元,用于生成表明所述蜘蛛程序需要被更新的更新判斷結(jié)果。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述更新數(shù)據(jù)信息包括執(zhí)行代碼更新版本及任務(wù)信息更新版本; 其中,所述B2單元具體包括: 第一判斷模塊,用于判斷所述當(dāng)前蜘蛛信息中當(dāng)前執(zhí)行代碼版本是否與所述更新數(shù)據(jù)信息中的執(zhí)行代碼更新版本相一致; 第二判斷模塊,用于判斷所述當(dāng)前蜘蛛信息中當(dāng)前任務(wù)信息版本是否與所述更新數(shù)據(jù)信息中的任務(wù)信息更新版本相一致; 相應(yīng)的,在所述第一判斷模塊判斷出所述當(dāng)前蜘蛛信息中當(dāng)前執(zhí)行代碼版本與所述更新數(shù)據(jù)信息中的執(zhí)行代碼更新版本相一致,且所述第二判斷模塊判斷所述當(dāng)前蜘蛛信息中當(dāng)前任務(wù)信息版本與所述更新數(shù)據(jù)信息中的任務(wù)信息更新版本相一致時(shí),觸發(fā)所述第一結(jié)果生成子單元,否則,觸發(fā)所述第二結(jié)果生成子單元。
10.根據(jù)權(quán)利要求6、7或9所述的裝置,其特征在于,所述C單元具體包括: 當(dāng)前任務(wù)停止子單元,用于控制所述網(wǎng)絡(luò)蜘蛛停止當(dāng)前任務(wù); 更新內(nèi)容提取子單元,用于提取所述更新包中的更新內(nèi)容; 內(nèi)容更新子單元,用于依據(jù)所述更新內(nèi)容,對(duì)所述網(wǎng)絡(luò)蜘蛛中的蜘蛛程序進(jìn)行更新; 任務(wù)控制執(zhí)行子單元,用于控制更新后的網(wǎng)絡(luò)蜘蛛以當(dāng)前蜘蛛程序執(zhí)行當(dāng)前蜘蛛任務(wù)。
【文檔編號(hào)】G06F9/445GK103955385SQ201410161869
【公開日】2014年7月30日 申請(qǐng)日期:2014年4月22日 優(yōu)先權(quán)日:2014年4月22日
【發(fā)明者】張海旭, 王旭, 王軍博 申請(qǐng)人:北京聯(lián)時(shí)空網(wǎng)絡(luò)通信設(shè)備有限公司