本發(fā)明涉及信息采集的技術(shù)領(lǐng)域,具體是一種可視化網(wǎng)絡(luò)爬蟲(chóng)方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)用戶(hù)的迅速增長(zhǎng),用戶(hù)所產(chǎn)生數(shù)據(jù)的數(shù)量產(chǎn)生了跨越式增加,數(shù)據(jù)的格式也越來(lái)越繁雜多樣,而在這些繁雜的數(shù)據(jù)中蘊(yùn)含著巨大的價(jià)值。但用戶(hù)想訪(fǎng)問(wèn)這些數(shù)據(jù)一般是通過(guò)訪(fǎng)問(wèn)搜索引擎來(lái)尋找相關(guān)信息并訪(fǎng)問(wèn)相關(guān)網(wǎng)頁(yè)。但使用通用的搜索引擎如百度搜索、360搜索和谷歌搜索等返回的網(wǎng)頁(yè)量巨大,而且網(wǎng)頁(yè)中大多包含著一些無(wú)效的或用戶(hù)不需要的信息。這樣從這些返回的數(shù)據(jù)中提取到精準(zhǔn)的信息很消耗用戶(hù)的時(shí)間與精力,難以滿(mǎn)足用戶(hù)直接獲得大量經(jīng)過(guò)提取的信息需求。
而且現(xiàn)在隨著大數(shù)據(jù)技術(shù)的發(fā)展,普通用戶(hù)對(duì)于獲取經(jīng)過(guò)清洗、完整的和格式統(tǒng)一的數(shù)據(jù)以用于后續(xù)的大數(shù)據(jù)處理的需求不斷增加。用戶(hù)為了滿(mǎn)足這樣的需求,通常采用網(wǎng)絡(luò)爬蟲(chóng)技術(shù)。但現(xiàn)在通用的網(wǎng)絡(luò)爬蟲(chóng)軟件或框架都要求用戶(hù)具備一定的編程基礎(chǔ),一般采用編程語(yǔ)言編輯。缺乏一種可視化的網(wǎng)絡(luò)爬蟲(chóng)軟件來(lái)協(xié)助編程技術(shù)相對(duì)薄弱的用戶(hù)大規(guī)模精準(zhǔn)獲取特定的網(wǎng)絡(luò)信息。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種基于頁(yè)面相似度匹配和css/xpath規(guī)則構(gòu)建抓取規(guī)則的可視化網(wǎng)絡(luò)爬蟲(chóng)技術(shù),以解決上述背景技術(shù)中提出的問(wèn)題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
一種可視化網(wǎng)絡(luò)爬蟲(chóng)方法,包括如下步驟:
(1)用戶(hù)輸入不少于1個(gè)初始url和規(guī)則文件;
(2)服務(wù)器解析規(guī)則文件,采用最大匹配算法對(duì)初始url分析生成url匹配過(guò)濾規(guī)則,調(diào)用采集模塊訪(fǎng)問(wèn)互聯(lián)網(wǎng)獲得初始url的網(wǎng)頁(yè);
(3)用戶(hù)在瀏覽器上打開(kāi)網(wǎng)頁(yè)瀏覽器插件標(biāo)記所需內(nèi)容與外鏈,服務(wù)器生成處理模塊所需的數(shù)據(jù)解析規(guī)則和外鏈解析規(guī)則;
(4)處理模塊處理初始url的網(wǎng)頁(yè),并將經(jīng)數(shù)據(jù)解析規(guī)則提取的數(shù)據(jù)保存到數(shù)據(jù)庫(kù),以及經(jīng)外鏈解析規(guī)則獲得的url即外鏈傳遞到調(diào)度模塊;
(5)調(diào)度模塊分配url隊(duì)列到采集模塊;
(6)url隊(duì)列再經(jīng)下載中間件模塊處理后訪(fǎng)問(wèn)互聯(lián)網(wǎng)獲得目標(biāo)url的網(wǎng)頁(yè);
(7)獲得的目標(biāo)url的網(wǎng)頁(yè)經(jīng)url匹配過(guò)濾規(guī)則的url匹配過(guò)濾后進(jìn)入處理模塊;
(8)處理模塊處理網(wǎng)頁(yè),將提取的數(shù)據(jù)保存到數(shù)據(jù)庫(kù)和獲得的url即外鏈傳遞到調(diào)度模塊,不斷循環(huán)處理;
(9)將獲得的數(shù)據(jù)提供給用戶(hù)下載。
作為本發(fā)明進(jìn)一步的方案:步驟(1)中,規(guī)則文件包括采集周期、是否啟動(dòng)js模擬與cookies。
作為本發(fā)明進(jìn)一步的方案:步驟(3)中,所述的用戶(hù)使用可視化的操控頁(yè)面并標(biāo)定采集信息與外鏈。
作為本發(fā)明進(jìn)一步的方案:步驟(3)中,服務(wù)器通過(guò)dom樹(shù)相似度算法完成數(shù)據(jù)解析規(guī)則和外鏈解析規(guī)則的生成。
作為本發(fā)明進(jìn)一步的方案:步驟(9)中,數(shù)據(jù)采用csv、json或excel格式。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
本發(fā)明提出的用戶(hù)可視化的操控頁(yè)面并標(biāo)定采集信息與外鏈,程序通過(guò)dom樹(shù)相似度算法完成數(shù)據(jù)解析規(guī)則和外鏈解析規(guī)則的生成的方法,使普通用戶(hù)方便和直觀(guān)的操控和設(shè)計(jì)抓取程序,降低對(duì)用戶(hù)技術(shù)水平的要求,有效增加大數(shù)據(jù)的研究人群,減輕相關(guān)研究人員的學(xué)習(xí)成本。
附圖說(shuō)明
圖1是一種可視化網(wǎng)絡(luò)爬蟲(chóng)方法示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
實(shí)施例1
請(qǐng)參閱圖1,本發(fā)明實(shí)施例中,一種可視化網(wǎng)絡(luò)爬蟲(chóng)方法,包括如下步驟:
(1)用戶(hù)輸入多個(gè)初始url、采集周期、是否啟動(dòng)js模擬、cookies等規(guī)則文件;
(2)服務(wù)器解析規(guī)則文件,采用最大匹配算法對(duì)初始url分析生成url匹配過(guò)濾規(guī)則,調(diào)用采集模塊訪(fǎng)問(wèn)互聯(lián)網(wǎng)獲得初始url的網(wǎng)頁(yè);
(3)用戶(hù)在瀏覽器上打開(kāi)網(wǎng)頁(yè)瀏覽器插件標(biāo)記所需內(nèi)容與外鏈,服務(wù)器使用dom樹(shù)相似度算法生成處理模塊所需的數(shù)據(jù)解析規(guī)則和外鏈解析規(guī)則;
(4)處理模塊處理網(wǎng)頁(yè),將提取的數(shù)據(jù)保存到數(shù)據(jù)庫(kù)和獲得的url外鏈傳遞到調(diào)度模塊;
(5)調(diào)度模塊分配url隊(duì)列到采集模塊;
(6)url隊(duì)列經(jīng)下載中間件模塊處理后訪(fǎng)問(wèn)互聯(lián)網(wǎng)獲得目標(biāo)url的網(wǎng)頁(yè);
(7)獲得的目標(biāo)url的網(wǎng)頁(yè)經(jīng)過(guò)url匹配過(guò)濾后進(jìn)入處理模塊;
(8)處理模塊處理網(wǎng)頁(yè),將提取的數(shù)據(jù)保存到數(shù)據(jù)庫(kù)和獲得的url外鏈傳遞到調(diào)度模塊,不斷循環(huán)處理;
(9)將獲得的數(shù)據(jù)以csv、json、excel等格式提供給用戶(hù)下載。
本發(fā)明對(duì)輸入多個(gè)相似的初始url進(jìn)行最大匹配算法即從所有的初始url的根目錄開(kāi)始匹配,遇到不同的目錄時(shí)即終止匹配,生成url匹配過(guò)濾規(guī)則。而數(shù)據(jù)解析和外鏈解析規(guī)則通過(guò)讓用戶(hù)使用可視化的瀏覽器插件簡(jiǎn)單標(biāo)定初始url上網(wǎng)頁(yè)的所需信息,采取dom樹(shù)相似度算法對(duì)網(wǎng)頁(yè)進(jìn)行相似度匹配生成規(guī)則,其中dom樹(shù)相似度算法是比較dom中的淺層節(jié)點(diǎn)的父節(jié)點(diǎn)是否一致而實(shí)現(xiàn)的。這樣實(shí)現(xiàn)用戶(hù)精準(zhǔn)抓取互聯(lián)網(wǎng)網(wǎng)頁(yè)信息的目的,節(jié)省用戶(hù)人工提取網(wǎng)頁(yè)信息時(shí)間,降低對(duì)操作人員的技術(shù)要求,同時(shí)具備抓取內(nèi)容的高精準(zhǔn)度,滿(mǎn)足普通用戶(hù)對(duì)網(wǎng)頁(yè)信息大規(guī)模精準(zhǔn)提取的需求。
綜上所述,本發(fā)明從實(shí)用性、可靠性、低成本的角度出發(fā),迎合與滿(mǎn)足當(dāng)前普通用戶(hù)對(duì)大規(guī)模信息精準(zhǔn)抓取的需求。
對(duì)于本領(lǐng)域技術(shù)人員而言,顯然本發(fā)明不限于上述示范性實(shí)施例的細(xì)節(jié),而且在不背離本發(fā)明的精神或基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本發(fā)明。因此,無(wú)論從哪一點(diǎn)來(lái)看,均應(yīng)將實(shí)施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權(quán)利要求而不是上述說(shuō)明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化囊括在本發(fā)明內(nèi)。
此外,應(yīng)當(dāng)理解,雖然本說(shuō)明書(shū)按照實(shí)施方式加以描述,但并非每個(gè)實(shí)施方式僅包含一個(gè)獨(dú)立的技術(shù)方案,說(shuō)明書(shū)的這種敘述方式僅僅是為清楚起見(jiàn),本領(lǐng)域技術(shù)人員應(yīng)當(dāng)將說(shuō)明書(shū)作為一個(gè)整體,各實(shí)施例中的技術(shù)方案也可以經(jīng)適當(dāng)組合,形成本領(lǐng)域技術(shù)人員可以理解的其他實(shí)施方式。