本發(fā)明涉及網(wǎng)站數(shù)據(jù)爬取的,尤其是涉及一種數(shù)據(jù)爬取方法、裝置及服務(wù)器。
背景技術(shù):
1、爬蟲在對(duì)網(wǎng)站數(shù)據(jù)進(jìn)行數(shù)據(jù)爬取時(shí),需要攜帶登錄信息或是在訪問詳情頁(yè)的時(shí)候攜帶加密參數(shù)。目前,相關(guān)技術(shù)提出,可以通過selenium偽裝成瀏覽器進(jìn)行請(qǐng)求,通過模擬人為的點(diǎn)擊動(dòng)作,獲取網(wǎng)站的通訊認(rèn)證,并破解網(wǎng)站的加密參數(shù),從而實(shí)現(xiàn)目標(biāo)數(shù)據(jù)的自動(dòng)化爬取,但selenium的數(shù)據(jù)爬取效率較低,對(duì)版本配置的要求較高,需要更新對(duì)應(yīng)的驅(qū)動(dòng),而且selenium的保護(hù)機(jī)制不允許跨域cookie的保存,在登錄時(shí)需要先打開網(wǎng)頁(yè)再加載cookie,該刷新方式很不友好,會(huì)嚴(yán)重影響用戶的使用體驗(yàn)。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本發(fā)明的目的在于提供一種數(shù)據(jù)爬取方法、裝置及服務(wù)器,可以通過js逆向確定加密參數(shù),從而降低確定目標(biāo)爬蟲算法和目標(biāo)爬取數(shù)據(jù)的確認(rèn)難度,進(jìn)而顯著提升數(shù)據(jù)爬取效率。
2、第一方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)爬取方法,方法包括:利用當(dāng)前爬蟲算法和目標(biāo)網(wǎng)站的網(wǎng)站信息,確定目標(biāo)網(wǎng)站的加密狀態(tài),其中,網(wǎng)站信息包括網(wǎng)站原始數(shù)據(jù);當(dāng)加密狀態(tài)為已加密時(shí),獲取目標(biāo)網(wǎng)站的目標(biāo)js文件;對(duì)目標(biāo)js文件進(jìn)行算法還原處理,確定目標(biāo)網(wǎng)站的加密參數(shù),并將加密參數(shù)添加至當(dāng)前爬蟲算法中,確定目標(biāo)爬蟲算法;利用目標(biāo)爬蟲算法對(duì)目標(biāo)網(wǎng)站進(jìn)行數(shù)據(jù)爬取處理,確定目標(biāo)爬取數(shù)據(jù)。
3、在一種實(shí)施方式中,當(dāng)前爬蟲算法中包括用戶代理參數(shù),利用當(dāng)前爬蟲算法和目標(biāo)網(wǎng)站的網(wǎng)站信息,確定目標(biāo)網(wǎng)站的加密狀態(tài)的步驟,包括:利用用戶代理參數(shù)獲取目標(biāo)網(wǎng)站的通訊認(rèn)證,以使當(dāng)前爬蟲算法對(duì)目標(biāo)網(wǎng)站進(jìn)行數(shù)據(jù)爬取處理,確定第一爬取數(shù)據(jù);利用第一爬取數(shù)據(jù)和網(wǎng)站原始數(shù)據(jù)進(jìn)行加密分析處理,確定目標(biāo)網(wǎng)站的加密狀態(tài)。
4、在一種實(shí)施方式中,利用爬取數(shù)據(jù)和網(wǎng)站原始數(shù)據(jù)進(jìn)行加密分析處理,確定目標(biāo)網(wǎng)站的加密狀態(tài)的步驟,包括:利用第一爬取數(shù)據(jù)和網(wǎng)站原始數(shù)據(jù),在預(yù)設(shè)參數(shù)集合中,確定目標(biāo)參數(shù);將目標(biāo)參數(shù)添加至當(dāng)前爬蟲算法中,確定更新后的爬蟲算法,并利用更新后的爬蟲算法對(duì)目標(biāo)網(wǎng)站進(jìn)行數(shù)據(jù)爬取處理,確定第二爬取數(shù)據(jù);將第二爬取數(shù)據(jù)與網(wǎng)站原始數(shù)據(jù)進(jìn)行對(duì)比;若對(duì)比結(jié)果并不一致,則確定目標(biāo)網(wǎng)站已加密;若對(duì)比結(jié)果不一致,則確定目標(biāo)網(wǎng)站未加密。
5、在一種實(shí)施方式中,方法包括:當(dāng)目標(biāo)網(wǎng)站處于未加密狀態(tài)時(shí),將更新后的爬蟲算法確定為目標(biāo)爬蟲算法。
6、在一種實(shí)施方式中,獲取目標(biāo)網(wǎng)站的目標(biāo)js文件的步驟,包括:獲取目標(biāo)網(wǎng)站的文本數(shù)據(jù);通過預(yù)設(shè)分析測(cè)試模型,基于文本數(shù)據(jù),確定文本數(shù)據(jù)的目標(biāo)值;對(duì)目標(biāo)值進(jìn)行數(shù)值處理,確定目標(biāo)js文件。
7、在一種實(shí)施方式中,在獲取目標(biāo)網(wǎng)站的文本數(shù)據(jù)的步驟之后,包括:對(duì)文本數(shù)據(jù)進(jìn)行數(shù)據(jù)診斷處理,確定數(shù)據(jù)診斷結(jié)果;若數(shù)據(jù)診斷結(jié)果為正常,則將文本數(shù)據(jù)發(fā)送至預(yù)設(shè)分析測(cè)試模型,確定文本數(shù)據(jù)的目標(biāo)值;若數(shù)據(jù)診斷結(jié)果為過期,則重新獲取文本數(shù)據(jù)。
8、在一種實(shí)施方式中,對(duì)目標(biāo)值進(jìn)行數(shù)值處理,確定目標(biāo)js文件的步驟,包括:建立一個(gè)空的新棧;將文本數(shù)據(jù)的目標(biāo)值放置在新棧的目標(biāo)位置;對(duì)目標(biāo)值進(jìn)行跟棧處理,確定目標(biāo)js文件。
9、第二方面,本發(fā)明實(shí)施例還提供一種數(shù)據(jù)爬取裝置,裝置包括:狀態(tài)確認(rèn)模塊,利用當(dāng)前爬蟲算法和目標(biāo)網(wǎng)站的網(wǎng)站信息,確定目標(biāo)網(wǎng)站的加密狀態(tài),其中,網(wǎng)站信息包括網(wǎng)站原始數(shù)據(jù);文件獲取模塊,當(dāng)加密狀態(tài)為已加密時(shí),獲取目標(biāo)網(wǎng)站的js文件;密碼還原模塊,對(duì)js文件進(jìn)行算法還原處理,確定目標(biāo)網(wǎng)站的加密參數(shù),并將加密參數(shù)添加至當(dāng)前爬蟲算法中,確定目標(biāo)爬蟲算法;數(shù)據(jù)爬取模塊,利用目標(biāo)爬蟲算法對(duì)目標(biāo)網(wǎng)站進(jìn)行數(shù)據(jù)爬取處理,確定目標(biāo)爬取數(shù)據(jù)。
10、第三方面,本發(fā)明實(shí)施例還提供一種服務(wù)器,包括處理器和存儲(chǔ)器,存儲(chǔ)器存儲(chǔ)有能夠被處理器執(zhí)行的計(jì)算機(jī)可執(zhí)行指令,處理器執(zhí)行計(jì)算機(jī)可執(zhí)行指令以實(shí)現(xiàn)第一方面提供的任一項(xiàng)的方法。
11、第四方面,本發(fā)明實(shí)施例還提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令,計(jì)算機(jī)可執(zhí)行指令在被處理器調(diào)用和執(zhí)行時(shí),計(jì)算機(jī)可執(zhí)行指令促使處理器實(shí)現(xiàn)第一方面提供的任一項(xiàng)的方法。
12、本發(fā)明實(shí)施例帶來(lái)了以下有益效果:
13、本發(fā)明實(shí)施例提供的一種數(shù)據(jù)爬取方法、裝置及服務(wù)器,該方法利用當(dāng)前爬蟲算法和目標(biāo)網(wǎng)站的網(wǎng)站信息,確定目標(biāo)網(wǎng)站的加密狀態(tài),其中,網(wǎng)站信息包括網(wǎng)站原始數(shù)據(jù),當(dāng)加密狀態(tài)為已加密時(shí),獲取目標(biāo)網(wǎng)站的目標(biāo)js文件,對(duì)目標(biāo)js文件進(jìn)行算法還原處理,確定目標(biāo)網(wǎng)站的加密參數(shù),并將加密參數(shù)添加至當(dāng)前爬蟲算法中,確定目標(biāo)爬蟲算法,從而利用目標(biāo)爬蟲算法對(duì)目標(biāo)網(wǎng)站進(jìn)行數(shù)據(jù)爬取處理,確定目標(biāo)爬取數(shù)據(jù)。本發(fā)明實(shí)施例可以通過js逆向確定加密參數(shù),從而降低確定目標(biāo)爬蟲算法和目標(biāo)爬取數(shù)據(jù)的確認(rèn)難度,進(jìn)而顯著提升數(shù)據(jù)爬取效率。
14、本發(fā)明的其他特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲得。
15、為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并配合所附附圖,作詳細(xì)說明如下。
1.一種數(shù)據(jù)爬取方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)爬取方法,其特征在于,所述當(dāng)前爬蟲算法中包括用戶代理參數(shù),所述利用當(dāng)前爬蟲算法和目標(biāo)網(wǎng)站的網(wǎng)站信息,確定所述目標(biāo)網(wǎng)站的加密狀態(tài)的步驟,包括:
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)爬取方法,其特征在于,所述利用所述爬取數(shù)據(jù)和所述網(wǎng)站原始數(shù)據(jù)進(jìn)行加密分析處理,確定所述目標(biāo)網(wǎng)站的加密狀態(tài)的步驟,包括:
4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)爬取方法,其特征在于,所述方法包括:
5.根據(jù)權(quán)利要求1所述的數(shù)據(jù)爬取方法,其特征在于,所述獲取所述目標(biāo)網(wǎng)站的目標(biāo)js文件的步驟,包括:
6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)爬取方法,其特征在于,在獲取所述目標(biāo)網(wǎng)站的文本數(shù)據(jù)的步驟之后,包括:
7.根據(jù)權(quán)利要求5所述的數(shù)據(jù)爬取方法,其特征在于,所述對(duì)所述目標(biāo)值進(jìn)行數(shù)值處理,確定所述目標(biāo)js文件的步驟,包括:
8.一種數(shù)據(jù)爬取裝置,其特征在于,所述裝置包括:
9.一種服務(wù)器,其特征在于,包括處理器和存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)有能夠被所述處理器執(zhí)行的計(jì)算機(jī)可執(zhí)行指令,所述處理器執(zhí)行所述計(jì)算機(jī)可執(zhí)行指令以實(shí)現(xiàn)權(quán)利要求1至7任一項(xiàng)所述的方法。
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令,所述計(jì)算機(jī)可執(zhí)行指令在被處理器調(diào)用和執(zhí)行時(shí),計(jì)算機(jī)可執(zhí)行指令促使處理器實(shí)現(xiàn)權(quán)利要求1至7任一項(xiàng)所述的方法。