本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,特別涉及一種數(shù)據(jù)刷新系統(tǒng)及數(shù)據(jù)刷新方法。
背景技術(shù):
互聯(lián)網(wǎng)的出現(xiàn)使得信息的獲取變得便捷而高效,有時(shí)候我們不僅需要獲取相關(guān)信息,而且我們還要求獲取最新的信息。因此,需要有一種技術(shù)能夠?qū)崿F(xiàn)從目標(biāo)站抓取更新后的數(shù)據(jù),并將更新的數(shù)據(jù)放入到預(yù)先設(shè)定的數(shù)據(jù)庫(kù)中,以方便查詢(xún)和利用。
現(xiàn)有技術(shù)中,這種功能的實(shí)現(xiàn)是利用爬蟲(chóng)技術(shù)從目標(biāo)站上抓取更新后的數(shù)據(jù),然后將抓取的數(shù)據(jù)放入到設(shè)定的數(shù)據(jù)庫(kù)。
但是現(xiàn)有技術(shù)中存在的問(wèn)題是處理數(shù)據(jù)慢,且對(duì)服務(wù)器的要求很高,不適合進(jìn)行大批量的數(shù)據(jù)刷新。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于解決現(xiàn)有技術(shù)中數(shù)據(jù)刷新系統(tǒng)處理數(shù)據(jù)慢,且對(duì)服務(wù)器的要求很高,不適合進(jìn)行大批量的數(shù)據(jù)刷新。
為實(shí)現(xiàn)上述目的,本發(fā)明提供一種數(shù)據(jù)刷新系統(tǒng),包括:中央服務(wù)器、兩個(gè)以上的節(jié)點(diǎn)服務(wù)器和數(shù)據(jù)庫(kù);
所述中央服務(wù)器包括:參數(shù)配置模塊、url隊(duì)列生成模塊、url讀取模塊;
其中,參數(shù)配置模塊用于設(shè)置請(qǐng)求參數(shù);
url隊(duì)列生成模塊用于根據(jù)所述請(qǐng)求參數(shù)生成url隊(duì)列;
url讀取模塊用于讀取url隊(duì)列內(nèi)的url,并將url發(fā)送至各節(jié)點(diǎn)服務(wù)器;
所述節(jié)點(diǎn)服務(wù)器中部署有爬蟲(chóng)程序,所述爬蟲(chóng)程序依據(jù)url讀取模塊發(fā)送的url進(jìn)行數(shù)據(jù)抓取,并將抓取的數(shù)據(jù)放入數(shù)據(jù)庫(kù);
所述數(shù)據(jù)庫(kù)用于存儲(chǔ)數(shù)據(jù)。
進(jìn)一步,還包括:
兼容處理模塊,所述兼容處理模塊用于將爬蟲(chóng)程序抓取的數(shù)據(jù)的格式轉(zhuǎn)化為數(shù)據(jù)庫(kù)可兼容的數(shù)據(jù)格式。
進(jìn)一步,還包括:
緩存,所述緩存用于存儲(chǔ)所述爬蟲(chóng)程序抓取的數(shù)據(jù),然后將該數(shù)據(jù)讀入到數(shù)據(jù)庫(kù)中。
進(jìn)一步,所述爬蟲(chóng)程序依據(jù)url讀取模塊發(fā)送的url進(jìn)行數(shù)據(jù)抓取的狀態(tài)以日志的形式記錄保持。
進(jìn)一步,所述爬蟲(chóng)程序依據(jù)url讀取模塊發(fā)送的url進(jìn)行數(shù)據(jù)抓取若失敗,對(duì)應(yīng)的url將被重新放回url隊(duì)列中。
與現(xiàn)有技術(shù)相比,本技術(shù)方案具有以下優(yōu)點(diǎn):
本發(fā)明提供的數(shù)據(jù)刷新系統(tǒng)具有兩個(gè)以上的節(jié)點(diǎn)服務(wù)器,能夠多線程運(yùn)行爬蟲(chóng)程序,提高數(shù)據(jù)獲取效率,有效提高數(shù)據(jù)更新速度。通過(guò)url讀取模塊,將url分散均衡發(fā)送至各節(jié)點(diǎn)服務(wù)器,達(dá)到負(fù)載均衡,可以有效降低節(jié)點(diǎn)服務(wù)器的運(yùn)行壓力。url隊(duì)列生成模塊用于生成url隊(duì)列,能夠有效降低高并發(fā)量導(dǎo)致的系統(tǒng)崩潰。
本發(fā)明還提供一種數(shù)據(jù)刷新方法,包括:
通過(guò)參數(shù)配置模塊配置請(qǐng)求參數(shù);
url隊(duì)列生成模塊根據(jù)所述請(qǐng)求參數(shù)生成url隊(duì)列;
url讀取模塊讀取url隊(duì)列內(nèi)的url,并將url發(fā)送至各節(jié)點(diǎn)服務(wù)器;
各節(jié)點(diǎn)服務(wù)器中部署的爬蟲(chóng)程序依據(jù)url讀取模塊發(fā)送的url進(jìn)行數(shù)據(jù)抓取,并將抓取的數(shù)據(jù)放入數(shù)據(jù)庫(kù)。
進(jìn)一步,爬蟲(chóng)程序?qū)⒆ト〉臄?shù)據(jù)放入數(shù)據(jù)庫(kù)之前還包括:
通過(guò)兼容處理模塊將爬蟲(chóng)程序抓取的數(shù)據(jù)的格式轉(zhuǎn)化為數(shù)據(jù)庫(kù)可兼容的數(shù)據(jù)格式。
進(jìn)一步,通過(guò)兼容處理模塊將爬蟲(chóng)程序抓取的數(shù)據(jù)的格式轉(zhuǎn)化為數(shù)據(jù)庫(kù)可兼容的數(shù)據(jù)格式之前還包括:
判斷爬蟲(chóng)程序抓取的數(shù)據(jù)是否放在緩存內(nèi),若是,則直接從緩存內(nèi)將數(shù)據(jù)進(jìn)行格式轉(zhuǎn)化;
若否,則需要通過(guò)爬蟲(chóng)程序獲取數(shù)據(jù)后再進(jìn)行格式轉(zhuǎn)化。
進(jìn)一步,所述爬蟲(chóng)程序依據(jù)url讀取模塊發(fā)送的url進(jìn)行數(shù)據(jù)抓取的狀態(tài)以日志的形式記錄保持。
進(jìn)一步,所述爬蟲(chóng)程序依據(jù)url讀取模塊發(fā)送的url進(jìn)行數(shù)據(jù)抓取若失敗,對(duì)應(yīng)的url將被重新放回url隊(duì)列中。
與現(xiàn)有技術(shù)相比,本技術(shù)方案具有以下優(yōu)點(diǎn):
本技術(shù)方案的數(shù)據(jù)刷新方法采用兩個(gè)以上的節(jié)點(diǎn)服務(wù)器,能夠多線程運(yùn)行爬蟲(chóng)程序,提高數(shù)據(jù)獲取效率,有效提高數(shù)據(jù)更新速度。通過(guò)url讀取模塊,將url分散均衡發(fā)送至各節(jié)點(diǎn)服務(wù)器,達(dá)到負(fù)載均衡,可以有效降低節(jié)點(diǎn)服務(wù)器的運(yùn)行壓力。url隊(duì)列生成模塊用于生成url隊(duì)列,能夠有效降低高并發(fā)量導(dǎo)致的系統(tǒng)崩潰。
附圖說(shuō)明
圖1為本發(fā)明第一實(shí)施例中數(shù)據(jù)刷新系統(tǒng)的示意圖;
圖2為本發(fā)明第二實(shí)施例中數(shù)據(jù)刷新方法的流程圖。
具體實(shí)施方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更為明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施例做詳細(xì)的說(shuō)明。
第一實(shí)施例
參考圖1,本實(shí)施例提供了一種數(shù)據(jù)刷新系統(tǒng),包括:中央服務(wù)器、兩個(gè)以上的節(jié)點(diǎn)服務(wù)器和數(shù)據(jù)庫(kù)。
所述中央服務(wù)器包括:參數(shù)配置模塊、url隊(duì)列生成模塊和url讀取模塊。
其中,參數(shù)配置模塊用于設(shè)置請(qǐng)求參數(shù)。所述請(qǐng)求參數(shù)例如:需要獲取蘇州朗動(dòng)網(wǎng)絡(luò)科技有限公司的工商數(shù)據(jù),則需要準(zhǔn)備公司關(guān)鍵字:蘇州朗動(dòng)網(wǎng)絡(luò)科技有限公司,公司所在省份:江蘇等相關(guān)信息作為請(qǐng)求參數(shù)。
url隊(duì)列生成模塊用于根據(jù)所述請(qǐng)求參數(shù)生成url隊(duì)列。也就是參數(shù)配置模塊可以設(shè)置多組請(qǐng)求參數(shù),以完成多組請(qǐng)求,對(duì)應(yīng)的url隊(duì)列生成模塊將生成多個(gè)url,并形成隊(duì)列。
url讀取模塊用于讀取url隊(duì)列內(nèi)的url,并將url發(fā)送至各節(jié)點(diǎn)服務(wù)器。url讀取模塊采用多線程方式不斷從url隊(duì)列中讀取url,并將讀取的url分配到各節(jié)點(diǎn)服務(wù)器進(jìn)行數(shù)據(jù)抓取。
所述節(jié)點(diǎn)服務(wù)器中部署有爬蟲(chóng)程序,所述爬蟲(chóng)程序依據(jù)url讀取模塊發(fā)送的url進(jìn)行數(shù)據(jù)抓取,并將抓取的數(shù)據(jù)放入數(shù)據(jù)庫(kù)。
在本實(shí)施例中,所述節(jié)點(diǎn)服務(wù)器的數(shù)量為3個(gè),在其他實(shí)施例中也可以是兩個(gè),或者4個(gè)以上。
所述爬蟲(chóng)程序依據(jù)url讀取模塊發(fā)送的url進(jìn)行數(shù)據(jù)抓取的狀態(tài)以日志的形式記錄保持。以方便統(tǒng)計(jì)數(shù)據(jù)抓取的成功率和失敗率,并可通過(guò)郵件發(fā)送給相關(guān)人員。
所述爬蟲(chóng)程序依據(jù)url讀取模塊發(fā)送的url進(jìn)行數(shù)據(jù)抓取若失敗,對(duì)應(yīng)的url將被重新放回url隊(duì)列中。這樣可以再次進(jìn)行數(shù)據(jù)抓取,防止信息抓取的遺漏。
所述數(shù)據(jù)庫(kù)用于存儲(chǔ)數(shù)據(jù)。
在本實(shí)施例中,數(shù)據(jù)刷新系統(tǒng)還包括兼容處理模塊(未示出),所述兼容處理模塊用于將爬蟲(chóng)程序抓取的數(shù)據(jù)的格式轉(zhuǎn)化為數(shù)據(jù)庫(kù)可兼容的數(shù)據(jù)格式。
在本實(shí)施例中,數(shù)據(jù)刷新系統(tǒng)還包括緩存(未示出),所述緩存用于存儲(chǔ)所述爬蟲(chóng)程序抓取的數(shù)據(jù),然后將該數(shù)據(jù)讀入到數(shù)據(jù)庫(kù)中。
有時(shí)爬蟲(chóng)程序從目標(biāo)站抓取信息的速度很慢,通過(guò)先將抓取的數(shù)據(jù)放入緩存,有助于提高數(shù)據(jù)存入數(shù)據(jù)庫(kù)的速度。
所述的數(shù)據(jù)刷新系統(tǒng)具有兩個(gè)以上的節(jié)點(diǎn)服務(wù)器,能夠多線程運(yùn)行爬蟲(chóng)程序,提高數(shù)據(jù)獲取效率,有效提高數(shù)據(jù)更新速度。通過(guò)url讀取模塊,將url分散均衡發(fā)送至各節(jié)點(diǎn)服務(wù)器,達(dá)到負(fù)載均衡,可以有效降低節(jié)點(diǎn)服務(wù)器的運(yùn)行壓力。url隊(duì)列生成模塊用于生成url隊(duì)列,能夠有效降低高并發(fā)量導(dǎo)致的系統(tǒng)崩潰。
第二實(shí)施例
參考圖2,本實(shí)施例提供一種數(shù)據(jù)刷新方法,包括:
通過(guò)參數(shù)配置模塊配置請(qǐng)求參數(shù);
url隊(duì)列生成模塊根據(jù)所述請(qǐng)求參數(shù)生成url隊(duì)列;
url讀取模塊讀取url隊(duì)列內(nèi)的url,并將url發(fā)送至各節(jié)點(diǎn)服務(wù)器;
各節(jié)點(diǎn)服務(wù)器中部署的爬蟲(chóng)程序依據(jù)url讀取模塊發(fā)送的url進(jìn)行數(shù)據(jù)抓??;
判斷爬蟲(chóng)程序抓取的數(shù)據(jù)是否放在緩存內(nèi),若是,則直接從緩存內(nèi)將數(shù)據(jù)進(jìn)行格式轉(zhuǎn)化;若否,則需要通過(guò)爬蟲(chóng)程序獲取數(shù)據(jù)后再進(jìn)行格式轉(zhuǎn)化。
通過(guò)兼容處理模塊將爬蟲(chóng)程序抓取的數(shù)據(jù)的格式轉(zhuǎn)化為數(shù)據(jù)庫(kù)可兼容的數(shù)據(jù)格式,并將抓取的數(shù)據(jù)放入數(shù)據(jù)庫(kù)。
在具體實(shí)施例中,所述爬蟲(chóng)程序依據(jù)url讀取模塊發(fā)送的url進(jìn)行數(shù)據(jù)抓取的狀態(tài)以日志的形式記錄保持。
在具體實(shí)施例中,所述爬蟲(chóng)程序依據(jù)url讀取模塊發(fā)送的url進(jìn)行數(shù)據(jù)抓取若失敗,對(duì)應(yīng)的url將被重新放回url隊(duì)列中。
本技術(shù)方案的數(shù)據(jù)刷新方法采用兩個(gè)以上的節(jié)點(diǎn)服務(wù)器,能夠多線程運(yùn)行爬蟲(chóng)程序,提高數(shù)據(jù)獲取效率,有效提高數(shù)據(jù)更新速度。通過(guò)url讀取模塊,將url分散均衡發(fā)送至各節(jié)點(diǎn)服務(wù)器,達(dá)到負(fù)載均衡,可以有效降低節(jié)點(diǎn)服務(wù)器的運(yùn)行壓力。url隊(duì)列生成模塊用于生成url隊(duì)列,能夠有效降低高并發(fā)量導(dǎo)致的系統(tǒng)崩潰。
以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。