两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種設(shè)置爬蟲(chóng)爬取時(shí)間間隔的方法及裝置與流程

文檔序號(hào):11066194閱讀:1932來(lái)源:國(guó)知局
一種設(shè)置爬蟲(chóng)爬取時(shí)間間隔的方法及裝置與制造工藝

本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別是涉及一種設(shè)置爬蟲(chóng)爬取時(shí)間間隔的方法及裝置。



背景技術(shù):

網(wǎng)絡(luò)爬蟲(chóng)是一種自動(dòng)獲取網(wǎng)頁(yè)內(nèi)容的程序,爬蟲(chóng)從一個(gè)或若干個(gè)初始網(wǎng)頁(yè)的URL開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當(dāng)前頁(yè)面上抽取新的URL放入隊(duì)列,直到滿足系統(tǒng)一定的停止條件。在爬蟲(chóng)工作的過(guò)程中,特別是在檢查網(wǎng)站更新量的時(shí)候,對(duì)沒(méi)有更新或更新量很少的網(wǎng)站在短時(shí)間內(nèi)多次爬取是沒(méi)有必要的,因此有必要控制爬蟲(chóng)對(duì)同一個(gè)網(wǎng)站爬取的時(shí)間間隔,避免浪費(fèi)爬蟲(chóng)資源。

目前通行的做法是人工設(shè)置網(wǎng)頁(yè)的爬取時(shí)間間隔,包括對(duì)每個(gè)種子(爬蟲(chóng)需要爬取的頁(yè)面url)單獨(dú)進(jìn)行設(shè)置和統(tǒng)一設(shè)置兩種方式,統(tǒng)一的設(shè)置爬取時(shí)間間隔需要平衡更新量不同的網(wǎng)站,對(duì)于更新頻繁的網(wǎng)站,期望時(shí)間間隔要盡量的短,對(duì)于更新不頻繁的網(wǎng)站,期望時(shí)間間隔相對(duì)要長(zhǎng),因此一般設(shè)置的時(shí)間間隔都是這兩種情況下的折中選擇結(jié)果。但是折中的時(shí)間間隔一方面導(dǎo)致更新頻繁的網(wǎng)站將無(wú)法及時(shí)的獲取到更新內(nèi)容,嚴(yán)重影響了更新時(shí)間的確定,另一方面導(dǎo)致更新不頻繁的網(wǎng)站多次重復(fù)爬取,浪費(fèi)了系統(tǒng)的爬蟲(chóng)資源。



技術(shù)實(shí)現(xiàn)要素:

有鑒于此,本發(fā)明提出了一種設(shè)置爬蟲(chóng)爬取時(shí)間間隔的方法及裝置,主要目的在于解決無(wú)法為爬蟲(chóng)設(shè)置合理的爬取時(shí)間間隔而造成爬蟲(chóng)有效利用率低下的問(wèn)題。

依據(jù)本發(fā)明的第一個(gè)方面,本發(fā)明提出了一種設(shè)置爬蟲(chóng)爬取時(shí)間間隔的方法,包括:

以默認(rèn)爬取時(shí)間間隔對(duì)目標(biāo)網(wǎng)站進(jìn)行爬??;

獲取目標(biāo)網(wǎng)站在一段時(shí)間內(nèi)的實(shí)際平均更新量;

判斷實(shí)際平均更新量是否等于預(yù)設(shè)平均更新量;

當(dāng)判斷結(jié)果為否時(shí),根據(jù)實(shí)際平均更新量、預(yù)設(shè)平均更新量以及默認(rèn)爬取時(shí)間間隔設(shè)置爬蟲(chóng)爬取時(shí)間間隔。

依據(jù)本發(fā)明的第二個(gè)方面,本發(fā)明提出了一種設(shè)置爬蟲(chóng)爬取時(shí)間間隔的裝置,包括:

爬取單元,用于以默認(rèn)爬取時(shí)間間隔對(duì)目標(biāo)網(wǎng)站進(jìn)行爬??;

獲取單元,用于獲取目標(biāo)網(wǎng)站在一段時(shí)間內(nèi)的實(shí)際平均更新量;

判斷單元,用于判斷獲取單元獲取的實(shí)際平均更新量是否等于預(yù)設(shè)平均更新量;

設(shè)置單元,用于當(dāng)判斷結(jié)果為否時(shí),根據(jù)獲取單元獲取的實(shí)際平均更新量、預(yù)設(shè)平均更新量以及默認(rèn)爬取時(shí)間間隔設(shè)置爬蟲(chóng)爬取時(shí)間間隔。

借由上述技術(shù)方案,本發(fā)明實(shí)施例提供的設(shè)置爬蟲(chóng)爬取時(shí)間間隔的方法及裝置,能夠以默認(rèn)爬取時(shí)間間隔對(duì)目標(biāo)網(wǎng)站進(jìn)行爬取,獲取目標(biāo)網(wǎng)站在一段時(shí)間內(nèi)的實(shí)際平均更新量,判斷實(shí)際平均更新量是否等于預(yù)設(shè)平均更新量;當(dāng)判斷結(jié)果為否時(shí),根據(jù)實(shí)際平均更新量、預(yù)設(shè)平均更新量以及默認(rèn)爬取時(shí)間間隔設(shè)置爬蟲(chóng)爬取時(shí)間間隔。與現(xiàn)有技術(shù)中為爬蟲(chóng)人工設(shè)置統(tǒng)一的爬取時(shí)間間隔造成的無(wú)法對(duì)頻繁更新的網(wǎng)站進(jìn)行及時(shí)爬取或者對(duì)更新不頻繁的網(wǎng)站多次重復(fù)爬取浪費(fèi)爬蟲(chóng)資源的缺陷相比,本發(fā)明能夠通過(guò)對(duì)網(wǎng)站更新頻率的自學(xué)習(xí),自動(dòng)對(duì)不同網(wǎng)站的爬取時(shí)間間隔進(jìn)行設(shè)置,既能及時(shí)獲取網(wǎng)站更新內(nèi)容,又能避免爬蟲(chóng)資源的浪費(fèi)。

上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。

附圖說(shuō)明

通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:

圖1示出了本發(fā)明實(shí)施例提供的一種設(shè)置爬蟲(chóng)爬取時(shí)間間隔的方法的 流程圖;

圖2示出了本發(fā)明實(shí)施例提供的一種設(shè)置爬蟲(chóng)爬取時(shí)間間隔的裝置的組成框圖;

圖3示出了本發(fā)明實(shí)施例提供的另一種設(shè)置爬蟲(chóng)爬取時(shí)間間隔的裝置的組成框圖。

具體實(shí)施方式

下面將參照附圖更加詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。

在現(xiàn)有的爬蟲(chóng)爬取目標(biāo)網(wǎng)站的過(guò)程中,為了能夠保證對(duì)每個(gè)網(wǎng)站都能及時(shí)進(jìn)行爬取,通常會(huì)為每個(gè)網(wǎng)站單獨(dú)設(shè)置一個(gè)爬取時(shí)間間隔,但是這種方式需要耗費(fèi)極大的人力成本,若為所有的目標(biāo)網(wǎng)站統(tǒng)一設(shè)置一個(gè)爬取時(shí)間間隔,雖然節(jié)約了部分人力成本,但是又會(huì)出現(xiàn)設(shè)置的爬取時(shí)間間隔不準(zhǔn)確的缺陷,一方面導(dǎo)致更新頻繁的網(wǎng)站將無(wú)法及時(shí)的獲取到更新內(nèi)容,嚴(yán)重影響了更新時(shí)間的確定,另一方面導(dǎo)致更新不頻繁的網(wǎng)站多次重復(fù)爬取,浪費(fèi)了系統(tǒng)的爬蟲(chóng)資源。

為了解決無(wú)法為爬蟲(chóng)設(shè)置合理的爬取時(shí)間間隔而造成爬蟲(chóng)有效利用率低下的問(wèn)題,本發(fā)明實(shí)施例提供了一種設(shè)置爬蟲(chóng)爬取時(shí)間間隔的方法,如圖1所示,該方法包括:

101、以默認(rèn)爬取時(shí)間間隔對(duì)目標(biāo)網(wǎng)站進(jìn)行爬取。

在本發(fā)明實(shí)施例中,當(dāng)爬蟲(chóng)首次開(kāi)始爬取目標(biāo)網(wǎng)站的內(nèi)容時(shí),是以統(tǒng)一的爬取時(shí)間間隔進(jìn)行爬取的,該爬取時(shí)間間隔是爬蟲(chóng)默認(rèn)爬取時(shí)間間隔,是基于所有目標(biāo)網(wǎng)站的更新頻率選擇的爬取時(shí)間間隔,該默認(rèn)爬取時(shí)間間隔既不會(huì)對(duì)更新頻率高的網(wǎng)站爬取過(guò)慢又不會(huì)對(duì)更新頻率低的網(wǎng)站爬取過(guò)快,通常該默認(rèn)爬取時(shí)間間隔在一段時(shí)間內(nèi)是適用的,隨著爬取時(shí)間的推移,該默認(rèn)爬取時(shí)間間隔適用度下降,因此該默認(rèn)爬取時(shí)間間隔還可以動(dòng)態(tài)調(diào)整。

102、獲取目標(biāo)網(wǎng)站在一段時(shí)間內(nèi)的實(shí)際平均更新量。

由于本發(fā)明實(shí)施例是針對(duì)各個(gè)網(wǎng)站的不同更新情況實(shí)時(shí)為爬蟲(chóng)設(shè)置爬取時(shí)間間隔,因此為了獲取每個(gè)目標(biāo)網(wǎng)站的更新情況,本發(fā)明實(shí)施例需要在爬蟲(chóng)通過(guò)默認(rèn)爬取時(shí)間間隔對(duì)各個(gè)目標(biāo)網(wǎng)站進(jìn)行爬取的過(guò)程中,執(zhí)行步驟102獲取目標(biāo)網(wǎng)站在一段時(shí)間內(nèi)的實(shí)際平均更新量,該實(shí)際平均更新量能夠反映該目標(biāo)網(wǎng)站在該段時(shí)間內(nèi)的更新?tīng)顩r,從而為爬蟲(chóng)設(shè)置該段時(shí)間內(nèi)的爬取時(shí)間間隔提供參考依據(jù)。

103、判斷實(shí)際平均更新量是否等于預(yù)設(shè)平均更新量。

對(duì)每個(gè)目標(biāo)網(wǎng)站而言,通過(guò)步驟102獲取的一段時(shí)間內(nèi)的實(shí)際平均更新量是動(dòng)態(tài)變化的,在下一段時(shí)間內(nèi)的獲取的實(shí)際平均更新量可能會(huì)發(fā)生變化。但是對(duì)目標(biāo)網(wǎng)站而言,其通常在正常更新水平的情況下,會(huì)存在一個(gè)正常平均更新量,該正常平均更新量反應(yīng)了目標(biāo)網(wǎng)站理想的更新?tīng)顩r,可以作為判斷該目標(biāo)網(wǎng)站在一段時(shí)間內(nèi)更新?tīng)顩r的頻繁與否,因此本發(fā)明實(shí)施例可以將目標(biāo)網(wǎng)站的正常平均更新量作為預(yù)設(shè)平均更新量與獲取的目標(biāo)網(wǎng)站的實(shí)際平均更新量進(jìn)行比較,判斷實(shí)際平均更新量是否等于預(yù)設(shè)平均更新量。若通過(guò)步驟102獲取的目標(biāo)網(wǎng)站在一段時(shí)間內(nèi)的實(shí)際平均更新量大于預(yù)設(shè)平均更新量,則說(shuō)明在該段時(shí)間內(nèi)目標(biāo)網(wǎng)站更新頻率較高,需要縮短爬取時(shí)間間隔;若獲取的目標(biāo)網(wǎng)站在一段時(shí)間內(nèi)的實(shí)際平均更新量小于預(yù)設(shè)平均更新量,則說(shuō)明在該段時(shí)間內(nèi)目標(biāo)網(wǎng)站更新頻率較低,需要延長(zhǎng)爬取時(shí)間間隔;若獲取的目標(biāo)網(wǎng)站在一段時(shí)間內(nèi)的實(shí)際平均更新量等于預(yù)設(shè)平均更新量,則說(shuō)明在該段時(shí)間內(nèi)目標(biāo)網(wǎng)站更新頻率不變,可以繼續(xù)按照默認(rèn)爬取時(shí)間間隔進(jìn)行爬取。

104、當(dāng)判斷結(jié)果為否時(shí),根據(jù)實(shí)際平均更新量、預(yù)設(shè)平均更新量以及默認(rèn)爬取時(shí)間間隔設(shè)置爬蟲(chóng)爬取時(shí)間間隔。

當(dāng)在步驟104中判斷實(shí)際平均更新量不等于預(yù)設(shè)平均更新量時(shí),說(shuō)明需要重新設(shè)置爬蟲(chóng)爬取時(shí)間間隔,可以根據(jù)實(shí)際平均更新量、預(yù)設(shè)平均更新量以及默認(rèn)爬取時(shí)間間隔,結(jié)合平均更新量和爬取時(shí)間的負(fù)相關(guān)性,設(shè)置爬蟲(chóng)爬取時(shí)間間隔。

本發(fā)明實(shí)施例提供的設(shè)置爬蟲(chóng)爬取時(shí)間間隔的方法,能夠以默認(rèn)爬取 時(shí)間間隔對(duì)目標(biāo)網(wǎng)站進(jìn)行爬取,獲取目標(biāo)網(wǎng)站在一段時(shí)間內(nèi)的實(shí)際平均更新量,判斷實(shí)際平均更新量是否等于預(yù)設(shè)平均更新量;當(dāng)判斷結(jié)果為否時(shí),根據(jù)實(shí)際平均更新量、預(yù)設(shè)平均更新量以及默認(rèn)爬取時(shí)間間隔設(shè)置爬蟲(chóng)爬取時(shí)間間隔。與現(xiàn)有技術(shù)中為爬蟲(chóng)人工設(shè)置統(tǒng)一的爬取時(shí)間間隔造成的無(wú)法對(duì)頻繁更新的網(wǎng)站進(jìn)行及時(shí)爬取或者對(duì)更新不頻繁的網(wǎng)站多次重復(fù)爬取浪費(fèi)爬蟲(chóng)資源的缺陷相比,本發(fā)明能夠通過(guò)對(duì)網(wǎng)站更新頻率的自學(xué)習(xí),自動(dòng)對(duì)不同網(wǎng)站的爬取時(shí)間間隔進(jìn)行設(shè)置,既能及時(shí)獲取網(wǎng)站更新內(nèi)容,又能避免爬蟲(chóng)資源的浪費(fèi)。

為了更好的對(duì)上述圖1所示的方法進(jìn)行理解,本發(fā)明實(shí)施例將以一個(gè)目標(biāo)網(wǎng)站為例,針對(duì)圖1中的各步驟進(jìn)行詳細(xì)說(shuō)明。

在通過(guò)爬蟲(chóng)對(duì)所有目標(biāo)網(wǎng)站開(kāi)始進(jìn)行爬取時(shí),可以以默認(rèn)爬取時(shí)間間隔對(duì)各個(gè)目標(biāo)網(wǎng)站進(jìn)行爬取。在本發(fā)明實(shí)施例中,可以根據(jù)為各個(gè)目標(biāo)網(wǎng)站單獨(dú)設(shè)置的爬取時(shí)間間隔計(jì)算爬取時(shí)間折中值,以此作為各個(gè)目標(biāo)網(wǎng)站統(tǒng)一的默認(rèn)爬取時(shí)間間隔。由于各個(gè)目標(biāo)網(wǎng)站各自的爬取時(shí)間間隔不同,若要用統(tǒng)一的時(shí)間間隔對(duì)各個(gè)網(wǎng)站進(jìn)行爬取則必須從眾多的爬取時(shí)間間隔中選取一個(gè)具有代表性的時(shí)間間隔,該時(shí)間間隔既不會(huì)造成對(duì)更新頻率高的網(wǎng)站爬取過(guò)慢又不會(huì)對(duì)更新頻率低的網(wǎng)站爬取過(guò)快。因此,本發(fā)明實(shí)施例中可以通過(guò)計(jì)算各個(gè)目標(biāo)網(wǎng)站爬取時(shí)間間隔的平均值,將該平均值作為默認(rèn)爬取時(shí)間間隔對(duì)所有目標(biāo)網(wǎng)站進(jìn)行爬?。划?dāng)然也可以通過(guò)計(jì)算各個(gè)目標(biāo)網(wǎng)站爬取時(shí)間間隔的中位數(shù)值,將該中位數(shù)值作為默認(rèn)爬取時(shí)間間隔對(duì)所有目標(biāo)網(wǎng)站進(jìn)行爬取。

在用上述方式得到的默認(rèn)爬取時(shí)間間隔對(duì)目標(biāo)網(wǎng)站進(jìn)行一段時(shí)間的爬取后,需要獲取在該段時(shí)間內(nèi)目標(biāo)網(wǎng)站的實(shí)際平均更新量。具體的,可以先獲取目標(biāo)網(wǎng)站在該段時(shí)間內(nèi)的總更新量,根據(jù)總更新量以及該段時(shí)間計(jì)算目標(biāo)網(wǎng)站在該段時(shí)間內(nèi)的實(shí)際平均更新量。若該段時(shí)間為D,目標(biāo)網(wǎng)站在D時(shí)間內(nèi)的總更新量為N,則目標(biāo)網(wǎng)站在該段時(shí)間內(nèi)的實(shí)際平均更新量為N/D。該實(shí)際平均更新量反應(yīng)了目標(biāo)網(wǎng)站在該段時(shí)間內(nèi)的更新?tīng)顩r,若實(shí)際平均更新量高,則說(shuō)明目標(biāo)網(wǎng)站在該段時(shí)間內(nèi)更新頻率高;若實(shí)際平均更新量低,則說(shuō)明目標(biāo)網(wǎng)站在該段時(shí)間內(nèi)更新頻率低。

當(dāng)獲取到目標(biāo)網(wǎng)站在D時(shí)間段內(nèi)的實(shí)際平均更新量后,需要進(jìn)一步判斷目標(biāo)網(wǎng)站在該段時(shí)間內(nèi)是否需要調(diào)整爬取時(shí)間間隔。需要調(diào)整爬取時(shí)間間隔的情況分為兩種:一種是實(shí)際平均更新量過(guò)大,需要縮短爬取時(shí)間間隔;一種是實(shí)際平均更新量過(guò)小,需要延長(zhǎng)爬取時(shí)間間隔。為了明確獲取到的實(shí)際平均更新量過(guò)大或過(guò)小,本發(fā)明實(shí)施例提供了預(yù)設(shè)平均更新量,該預(yù)設(shè)平均更新量為目標(biāo)網(wǎng)站在長(zhǎng)時(shí)間內(nèi)穩(wěn)定的平均更新量,可以通過(guò)對(duì)歷史更新情況進(jìn)行大量的統(tǒng)計(jì),得到符合目標(biāo)網(wǎng)站正常更新水平的平均更新量,并將目標(biāo)網(wǎng)站正常更新水平的平均更新量作為預(yù)設(shè)平均更新量,判斷獲取的實(shí)際平均更新量是否等于預(yù)設(shè)平均更新量,從而根據(jù)判斷結(jié)果確定是否需要對(duì)爬蟲(chóng)爬取時(shí)間間隔進(jìn)行調(diào)整。

在本發(fā)明實(shí)施例中,假設(shè)預(yù)設(shè)平均更新量為X,默認(rèn)爬取時(shí)間間隔為T,則在上述判斷結(jié)果中會(huì)出現(xiàn)三種情況:1、當(dāng)獲取到的實(shí)際平均更新量N/D大于預(yù)設(shè)平均更新量X時(shí),說(shuō)明當(dāng)前對(duì)目標(biāo)網(wǎng)站使用的默認(rèn)爬取時(shí)間間隔T過(guò)長(zhǎng);2、當(dāng)N/D小于X時(shí),說(shuō)明當(dāng)前對(duì)目標(biāo)網(wǎng)站使用的默認(rèn)爬取時(shí)間間隔T過(guò)短;3、當(dāng)N/D等于X時(shí),說(shuō)明當(dāng)前對(duì)目標(biāo)網(wǎng)站使用的默認(rèn)爬取時(shí)間間隔合適,可以繼續(xù)使用該時(shí)間間隔對(duì)目標(biāo)網(wǎng)站進(jìn)行爬取。在上述前兩種情況下都應(yīng)該重新設(shè)置對(duì)目標(biāo)網(wǎng)站的爬取時(shí)間間隔,也就是當(dāng)判斷獲取的實(shí)際平均更新量不等于預(yù)設(shè)平均更新量后,需要重新設(shè)置爬蟲(chóng)的爬取時(shí)間間隔。具體的,由于目標(biāo)網(wǎng)站的實(shí)際平均更新量越高,對(duì)其爬取的時(shí)間間隔需要越短;目標(biāo)網(wǎng)站的實(shí)際平均更新量越低,對(duì)其爬取的時(shí)間間隔需要越長(zhǎng)。因此,可以認(rèn)為網(wǎng)站的平均更新量和爬蟲(chóng)的爬取時(shí)間間隔之間存在一定的負(fù)相關(guān)性,預(yù)設(shè)平均更新量為X、默認(rèn)爬取時(shí)間間隔為T、調(diào)整后的時(shí)間間隔T'、時(shí)間D內(nèi)的實(shí)際平均更新量N/D之間存在如下關(guān)系:X:(N/D)=T':T,由此可以得到調(diào)整后的爬取時(shí)間間隔T'=TX/(N/D)=TDX/N;因此根據(jù)公式T'=TX/(N/D)=TDX/N可以得到每個(gè)目標(biāo)網(wǎng)站調(diào)整后的爬取時(shí)間間隔,其中,T代表默認(rèn)爬取時(shí)間間隔,D代表爬蟲(chóng)的爬取時(shí)間、X代表目標(biāo)網(wǎng)站的正常平均更新量、N代表目標(biāo)網(wǎng)站在D時(shí)間內(nèi)的總更新量。每當(dāng)爬蟲(chóng)得到新的爬取時(shí)間間隔后,可以使用該爬取時(shí)間間隔工作一段時(shí)間,并根據(jù)上述公式不斷調(diào)整得到合適的爬取時(shí)間間隔,達(dá)到動(dòng)態(tài)更新爬蟲(chóng)爬 取時(shí)間間隔的目的。

在按照上述方式動(dòng)態(tài)設(shè)置爬取時(shí)間間隔時(shí),若某個(gè)網(wǎng)站的更新頻率過(guò)高或過(guò)低,則通過(guò)公式計(jì)算得到的爬取時(shí)間間隔會(huì)過(guò)長(zhǎng)或過(guò)短,過(guò)長(zhǎng)或過(guò)短的爬取時(shí)間間隔有時(shí)并不符合爬蟲(chóng)的爬取要求或者爬取性能,因此為了避免單純通過(guò)公式計(jì)算出現(xiàn)的意外情況,本發(fā)明實(shí)施例可以設(shè)置爬取時(shí)間的最大閾值和最小閾值,當(dāng)計(jì)算結(jié)果在閥值范圍之內(nèi),那么使用計(jì)算值作為調(diào)整后的爬取時(shí)間間隔,如果計(jì)算值不在閥值范圍內(nèi),則放棄使用計(jì)算值,改為使用最大閥值或最小閾值作為調(diào)整后的爬取時(shí)間間隔。具體的,當(dāng)計(jì)算的爬取時(shí)間間隔大于最大閾值時(shí),選擇最大閾值進(jìn)行爬取;當(dāng)計(jì)算的爬取時(shí)間間隔小于最小閾值時(shí),選擇最小閾值進(jìn)行爬取。這樣的機(jī)制既保證了根據(jù)網(wǎng)站更新頻率設(shè)置爬取時(shí)間間隔,又避免過(guò)短或者過(guò)長(zhǎng)的爬取時(shí)間間隔與爬蟲(chóng)性能和爬取需求不符。

進(jìn)一步的,作為對(duì)上述圖1所示方法的應(yīng)用,本發(fā)明實(shí)施例還提供了一種設(shè)置爬蟲(chóng)爬取時(shí)間間隔的裝置,如圖2所示,該裝置包括:爬取單元21、獲取單元22、判斷單元23及設(shè)置單元24,其中,

爬取單元21,用于以默認(rèn)爬取時(shí)間間隔對(duì)目標(biāo)網(wǎng)站進(jìn)行爬?。?/p>

獲取單元22,用于獲取目標(biāo)網(wǎng)站在一段時(shí)間內(nèi)的實(shí)際平均更新量;

判斷單元23,用于判斷獲取單元22獲取的實(shí)際平均更新量是否等于預(yù)設(shè)平均更新量;

設(shè)置單元24,用于當(dāng)判斷結(jié)果為否時(shí),根據(jù)獲取單元22獲取的實(shí)際平均更新量、預(yù)設(shè)平均更新量以及默認(rèn)爬取時(shí)間間隔設(shè)置爬蟲(chóng)爬取時(shí)間間隔。

進(jìn)一步的,如圖3所示,爬取單元21包括:

配置模塊211,用于根據(jù)各個(gè)目標(biāo)網(wǎng)站的爬取時(shí)間間隔配置爬取時(shí)間折中值;

爬取模塊212,用于將配置模塊211得到的所述爬取時(shí)間折中值作為默認(rèn)爬取時(shí)間間隔對(duì)所有目標(biāo)網(wǎng)站進(jìn)行爬取。

進(jìn)一步的,獲取單元22包括:

獲取模塊221,用于獲取所述目標(biāo)網(wǎng)站在一段時(shí)間內(nèi)的總更新量;

計(jì)算模塊222,用于根據(jù)獲取模塊221獲取的所述總更新量以及所述一 段時(shí)間計(jì)算所述目標(biāo)網(wǎng)站在所述一段時(shí)間內(nèi)的實(shí)際平均更新量。

進(jìn)一步的,設(shè)置單元24用于通過(guò)下述公式:爬蟲(chóng)爬取時(shí)間間隔=默認(rèn)爬取時(shí)間間隔/(實(shí)際平均更新量/預(yù)設(shè)平均更新量),設(shè)置爬蟲(chóng)爬取時(shí)間間隔。

進(jìn)一步的,該裝置還包括:

預(yù)設(shè)單元25,用于預(yù)設(shè)爬蟲(chóng)爬取時(shí)間間隔的最大閾值與最小閾值;

選擇單元26,用于當(dāng)設(shè)置的所述爬蟲(chóng)爬取時(shí)間間隔位于所述最大閾值與所述最小閾值范圍之間時(shí),選擇設(shè)置的所述爬蟲(chóng)爬取時(shí)間間隔進(jìn)行爬?。?/p>

選擇單元26還用于當(dāng)設(shè)置的所述爬蟲(chóng)爬取時(shí)間間隔大于所述最大閾值時(shí),選擇所述最大閾值進(jìn)行爬??;

選擇單元26還用于當(dāng)設(shè)置的所述爬蟲(chóng)爬取時(shí)間間隔小于所述最小閾值時(shí),選擇所述最小閾值進(jìn)行爬取。

本發(fā)明實(shí)施例提供的一種設(shè)置爬蟲(chóng)爬取時(shí)間間隔的裝置,能夠以默認(rèn)爬取時(shí)間間隔對(duì)目標(biāo)網(wǎng)站進(jìn)行爬取,獲取目標(biāo)網(wǎng)站在一段時(shí)間內(nèi)的實(shí)際平均更新量,判斷實(shí)際平均更新量是否等于預(yù)設(shè)平均更新量;當(dāng)判斷結(jié)果為否時(shí),根據(jù)實(shí)際平均更新量、預(yù)設(shè)平均更新量以及默認(rèn)爬取時(shí)間間隔設(shè)置爬蟲(chóng)爬取時(shí)間間隔。與現(xiàn)有技術(shù)中為爬蟲(chóng)人工設(shè)置統(tǒng)一的爬取時(shí)間間隔造成的無(wú)法對(duì)頻繁更新的網(wǎng)站進(jìn)行及時(shí)爬取或者對(duì)更新不頻繁的網(wǎng)站多次重復(fù)爬取浪費(fèi)爬蟲(chóng)資源的缺陷相比,本發(fā)明能夠通過(guò)對(duì)網(wǎng)站更新頻率的自學(xué)習(xí),自動(dòng)對(duì)不同網(wǎng)站的爬取時(shí)間間隔進(jìn)行設(shè)置,既能及時(shí)獲取網(wǎng)站更新內(nèi)容,又能避免爬蟲(chóng)資源的浪費(fèi)。

此外,本發(fā)明實(shí)施例設(shè)置爬取時(shí)間的最大閾值和最小閾值,當(dāng)計(jì)算的爬取時(shí)間間隔大于最大閾值時(shí),選擇最大閾值進(jìn)行爬?。划?dāng)計(jì)算的爬取時(shí)間間隔小于最小閾值時(shí),選擇最小閾值進(jìn)行爬取。這樣的機(jī)制既保證了根據(jù)網(wǎng)站更新頻率設(shè)置爬取時(shí)間間隔,又避免過(guò)短或者過(guò)長(zhǎng)的爬取時(shí)間間隔與爬蟲(chóng)性能和爬取需求不符。

所述設(shè)置爬蟲(chóng)爬取時(shí)間間隔的裝置包括處理器和存儲(chǔ)器,上述爬取單元21、獲取單元22、判斷單元23及設(shè)置單元24均作為程序單元存儲(chǔ)在存儲(chǔ)器中,由處理器執(zhí)行存儲(chǔ)在存儲(chǔ)器中的上述程序單元來(lái)實(shí)現(xiàn)相應(yīng)的功能。

處理器中包含內(nèi)核,由內(nèi)核去存儲(chǔ)器中調(diào)取相應(yīng)的程序單元。內(nèi)核可以設(shè)置一個(gè)或以上,通過(guò)調(diào)整內(nèi)核參數(shù)來(lái)實(shí)現(xiàn)動(dòng)態(tài)設(shè)置網(wǎng)頁(yè)爬取時(shí)間間隔,提高爬蟲(chóng)有效利用率的目的。

存儲(chǔ)器可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(f l ashRAM),存儲(chǔ)器包括至少一個(gè)存儲(chǔ)芯片。

本申請(qǐng)還提供了一種計(jì)算機(jī)程序產(chǎn)品,當(dāng)在數(shù)據(jù)處理設(shè)備上執(zhí)行時(shí),適于執(zhí)行初始化有如下方法步驟的程序代碼:以默認(rèn)爬取時(shí)間間隔對(duì)目標(biāo)網(wǎng)站進(jìn)行爬??;獲取所述目標(biāo)網(wǎng)站在一段時(shí)間內(nèi)的實(shí)際平均更新量;判斷所述實(shí)際平均更新量是否等于預(yù)設(shè)平均更新量;當(dāng)判斷結(jié)果為否時(shí),根據(jù)所述實(shí)際平均更新量、所述預(yù)設(shè)平均更新量以及所述默認(rèn)爬取時(shí)間間隔設(shè)置爬蟲(chóng)爬取時(shí)間間隔。

本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。

本申請(qǐng)是參照根據(jù)本申請(qǐng)實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。

這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè) 流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。

這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。

在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。

存儲(chǔ)器可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(f l ashRAM)。存儲(chǔ)器是計(jì)算機(jī)可讀介質(zhì)的示例。

計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來(lái)實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、其他類型的隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問(wèn)的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號(hào)和載波。

以上僅為本申請(qǐng)的實(shí)施例而已,并不用于限制本申請(qǐng)。對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō),本申請(qǐng)可以有各種更改和變化。凡在本申請(qǐng)的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)的權(quán)利要求范圍之內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
信阳市| 婺源县| 滕州市| 巫山县| 蓬溪县| 武强县| 加查县| 耒阳市| 广昌县| 定日县| 化德县| 竹北市| 金乡县| 定南县| 合肥市| 库尔勒市| 全州县| 龙江县| 天祝| 桃园市| 望都县| 翼城县| 屏南县| 吉安县| 韶关市| 拉萨市| 南宫市| 新民市| 宁安市| 无锡市| 名山县| 扬中市| 汝州市| 高密市| 澄迈县| 襄城县| 沭阳县| 丰台区| 通渭县| 贺兰县| 乃东县|