欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種大數(shù)據(jù)網(wǎng)絡(luò)爬蟲分頁(yè)選擇方法和系統(tǒng)與流程

文檔序號(hào):11519817閱讀:550來源:國(guó)知局
本發(fā)明涉及大數(shù)據(jù)分析處理
技術(shù)領(lǐng)域
:,具體是一種大數(shù)據(jù)網(wǎng)絡(luò)爬蟲分頁(yè)選擇方法和系統(tǒng)。
背景技術(shù)
::隨著網(wǎng)絡(luò)的迅速發(fā)展,每時(shí)每刻萬維網(wǎng)都在產(chǎn)生各式各樣的數(shù)據(jù)。目前,中國(guó)的網(wǎng)站總數(shù)約454萬個(gè),網(wǎng)頁(yè)數(shù)量突破2000億個(gè),浪涌般的數(shù)據(jù)蘊(yùn)藏著驚人的價(jià)值。如何有效地提取并利用這些信息成為一個(gè)巨大的挑戰(zhàn)。如何讓這些繁雜無序的互聯(lián)網(wǎng)數(shù)據(jù)產(chǎn)生價(jià)值,如何把萬維網(wǎng)變成自家的數(shù)據(jù)庫(kù),如何讓企業(yè)輕松駕馭這些海量數(shù)據(jù)信息來進(jìn)行創(chuàng)新、快速洞悉商機(jī),搜索引擎(searchengine),例如傳統(tǒng)的通用搜索引擎google和baidu等,作為一種輔助人們檢索信息的工具成為用戶訪問萬維網(wǎng)的入口和指南,被人們廣泛使用。但是,這些通用性搜索引擎也存在著一定的局限性,為了盡可能大的網(wǎng)絡(luò)覆蓋率,其搜索出來的數(shù)據(jù)龐雜精準(zhǔn)度低,所返回的結(jié)果包中含大量用戶不關(guān)心的網(wǎng)頁(yè)。在目前大數(shù)據(jù)產(chǎn)業(yè)的背景下,網(wǎng)絡(luò)爬蟲通常是一種快速獲取互聯(lián)網(wǎng)數(shù)據(jù)的有效途徑。其中,聚焦類爬蟲并不追求大的覆蓋,而將目標(biāo)定為抓取與某一特定主題內(nèi)容相關(guān)的網(wǎng)頁(yè),它根據(jù)既定的抓取目標(biāo),根據(jù)一定的網(wǎng)頁(yè)分析算法過濾與主題無關(guān)的鏈接,有選擇的訪問萬維網(wǎng)上的網(wǎng)頁(yè)與相關(guān)的鏈接獲取所需要的信息。往往我們需要獲取的數(shù)據(jù)是在網(wǎng)頁(yè)有列表或在表格信息中,而這些數(shù)據(jù)一般都是具有分頁(yè)的,聚焦爬蟲需要精準(zhǔn)識(shí)別其分頁(yè)標(biāo)簽,才能循環(huán)獲取下一頁(yè)的數(shù)據(jù)。當(dāng)在爬取數(shù)據(jù)時(shí),因有些網(wǎng)頁(yè)中的頁(yè)面按鈕html結(jié)構(gòu)發(fā)生改變導(dǎo)致無法定位到相應(yīng)的標(biāo)簽信息,造成不能循環(huán)爬取網(wǎng)頁(yè)數(shù)據(jù)的問題,例如有些網(wǎng)頁(yè)中的“下一頁(yè)”html結(jié)構(gòu)在點(diǎn)擊幾次“下一頁(yè)”后會(huì)發(fā)生改變,數(shù)據(jù)結(jié)構(gòu)發(fā)生改變后則不能通過原來的html定位符定位到“下一頁(yè)”這個(gè)按鈕,無法循環(huán)爬取網(wǎng)頁(yè)數(shù)據(jù)。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種大數(shù)據(jù)網(wǎng)絡(luò)爬蟲分頁(yè)選擇方法和系統(tǒng),直接省略當(dāng)前網(wǎng)頁(yè)中的頁(yè)面按鈕的html結(jié)構(gòu)是否發(fā)生改變這個(gè)可能造成整個(gè)爬蟲系統(tǒng)無法循環(huán)爬取數(shù)據(jù)的因素,能夠精準(zhǔn)識(shí)別數(shù)據(jù)的分頁(yè)標(biāo)簽,防止循環(huán)爬取數(shù)據(jù)過程中斷,提升網(wǎng)頁(yè)大數(shù)據(jù)的爬取效率,提高大數(shù)據(jù)分析處理效率。本發(fā)明的目的是通過以下技術(shù)方案來實(shí)現(xiàn)的:一種大數(shù)據(jù)網(wǎng)絡(luò)爬蟲分頁(yè)選擇方法,它包括以下步驟:s1:第一解析,解析爬蟲腳本;s2:第一匹配,獲取匹配符,對(duì)爬蟲腳本內(nèi)容中的標(biāo)簽信息進(jìn)行匹配;s3:存儲(chǔ),將匹配成功的標(biāo)簽的特征值存入url隊(duì)列中;s4:獲取及校驗(yàn),獲取url隊(duì)列中的url連接地址,校驗(yàn)url連接地址;s5:第二匹配,獲取校驗(yàn)后的url連接地址,進(jìn)行地址匹配;s6:第二解析,解析地址匹配成功的url地址的網(wǎng)頁(yè),獲取分頁(yè)信息。進(jìn)一步描述,在步驟s6之后,還包括一個(gè)返回步驟s7,所述的返回步驟s7,在獲取分頁(yè)信息后,返回到步驟s2中,從而實(shí)現(xiàn)循環(huán)爬取。進(jìn)一步描述,在步驟s1之前,還包括一個(gè)配置步驟s0,所述的配置步驟s0,用于配置爬蟲腳本中的分頁(yè)配置部分。所述的配置步驟s0,包括以下子步驟:第一配置,配置分頁(yè)組的定位符;第二配置,配置頁(yè)面按鈕的匹配符;第三配置,配置標(biāo)簽的屬性元素;第四配置,配置標(biāo)題元素;第五配置,配置文本元素。所述的url隊(duì)列為內(nèi)存隊(duì)列。所述的url隊(duì)列為文件隊(duì)列。進(jìn)一步描述,在步驟s1中,包括以下子步驟:s11:讀取爬蟲腳本文件并校驗(yàn),然后把爬蟲腳本文件中的規(guī)則字符串轉(zhuǎn)換為jsonarray;s12:將jsonarray轉(zhuǎn)化為腳本java對(duì)象;s13:解析腳本java對(duì)象中的爬蟲規(guī)則,再將解析結(jié)果設(shè)置到腳本java對(duì)象中。進(jìn)一步描述,在步驟s13中,使用遞歸解析來獲取腳本內(nèi)容對(duì)象中爬蟲規(guī)則中的字段及字段的信息。所述字段的信息包括name信息、css信息、save信息、click信息、regex信息和type信息。進(jìn)一步描述,在步驟s2中,獲取字段中的匹配符,逐一對(duì)腳本內(nèi)容對(duì)象中的標(biāo)簽的文本元素和標(biāo)題元素進(jìn)行匹配。進(jìn)一步描述,在步驟s3中,所述的特征值為href值。進(jìn)一步描述,在步驟s3中,在步驟s2中匹配成功后,將相應(yīng)標(biāo)簽的href值存入待爬取的url隊(duì)列中等待爬取。進(jìn)一步描述,在步驟s5中,對(duì)url地址進(jìn)行過濾匹配,通過模糊匹配變量來實(shí)現(xiàn)地址匹配。一種大數(shù)據(jù)網(wǎng)絡(luò)爬蟲分頁(yè)選擇系統(tǒng),它包括:第一解析模塊,用于解析爬蟲腳本;第一匹配模塊,用于獲取匹配符,對(duì)爬蟲腳本內(nèi)容中的標(biāo)簽信息進(jìn)行匹配;存儲(chǔ)模塊,用于將匹配成功的標(biāo)簽的特征值存入url隊(duì)列中;獲取模塊,用于獲取url隊(duì)列中的url連接地址,校驗(yàn)url連接地址;第二匹配模塊,用于獲取校驗(yàn)后的url連接地址,進(jìn)行地址匹配;第二解析模塊,用于解析地址匹配成功的url地址的網(wǎng)頁(yè),獲取分頁(yè)信息。進(jìn)一步描述,所述的一種大數(shù)據(jù)網(wǎng)絡(luò)爬蟲分頁(yè)選擇系統(tǒng),它還包括:第一配置模塊,用于配置分頁(yè)組的定位符;第二配置模塊,用于配置頁(yè)面按鈕的匹配符;第三配置模塊,用于配置標(biāo)簽的屬性元素;第四配置模塊,用于配置標(biāo)題元素;第五配置模塊,用于配置文本元素。本發(fā)明的有益效果是:(1)本發(fā)明解決了在循環(huán)爬取數(shù)據(jù)時(shí),因有些網(wǎng)頁(yè)中的頁(yè)面按鈕html結(jié)構(gòu)發(fā)生改變導(dǎo)致無法定位到相應(yīng)的標(biāo)簽信息,造成不能循環(huán)爬取網(wǎng)頁(yè)數(shù)據(jù)的問題,例如有些網(wǎng)頁(yè)中的“下一頁(yè)”html結(jié)構(gòu)在用戶點(diǎn)擊幾次“下一頁(yè)”后會(huì)發(fā)生改變,數(shù)據(jù)結(jié)構(gòu)改變后則不能通過原來的定位符,定位到“下一頁(yè)”這個(gè)頁(yè)面按鈕的html標(biāo)簽,從而無法循環(huán)爬取網(wǎng)頁(yè)數(shù)據(jù)。使用本發(fā)明后,可以直接地省略當(dāng)前網(wǎng)頁(yè)中“下一頁(yè)”按鈕的html結(jié)構(gòu)是否發(fā)生改變這個(gè)可能存在的變量因素,通過將原有的定位單個(gè)組件(下一頁(yè)按鈕)html結(jié)構(gòu)的方式擴(kuò)大到定位到一列組件(含上一頁(yè)、下一頁(yè)、首頁(yè)、尾頁(yè)、數(shù)字頁(yè)簽等)的方式,在實(shí)際爬取過程中發(fā)現(xiàn)“下一頁(yè)”按鈕組件有可能會(huì)變化,但是整個(gè)分頁(yè)組的結(jié)構(gòu)是很少變化的,通過對(duì)分頁(yè)組的精準(zhǔn)定位,從而解決了網(wǎng)絡(luò)爬蟲爬取網(wǎng)頁(yè)的時(shí)候解決有些網(wǎng)頁(yè)中的“下一頁(yè)”html結(jié)構(gòu)在點(diǎn)擊幾次“下一頁(yè)”后會(huì)發(fā)生改變的問題;(2)本發(fā)明直接省略了當(dāng)前網(wǎng)頁(yè)中的頁(yè)面按鈕的html結(jié)構(gòu)是否發(fā)生改變這個(gè)可能造成整個(gè)爬蟲系統(tǒng)無法循環(huán)爬取數(shù)據(jù)的因素,能夠精準(zhǔn)識(shí)別數(shù)據(jù)的分頁(yè)標(biāo)簽,可以防止循環(huán)爬取數(shù)據(jù)過程中斷,提升了網(wǎng)頁(yè)大數(shù)據(jù)的爬取效率,提高了大數(shù)據(jù)分析處理效率;(3)本發(fā)明可以通過采用一種可配置匹配符,在一組選定的標(biāo)簽中自動(dòng)匹配其屬性,然后再返回其href值,有效地解決了在循環(huán)爬取網(wǎng)頁(yè)中時(shí)有些網(wǎng)頁(yè)中的“下一頁(yè)”html結(jié)構(gòu)在點(diǎn)擊幾次“下一頁(yè)”后會(huì)發(fā)生改變的問題,可以精準(zhǔn)定位下一頁(yè)按鈕的地址。附圖說明圖1為本發(fā)明方法的步驟流程圖;圖2為本發(fā)明系統(tǒng)的分頁(yè)處理流程圖;圖3為本發(fā)明系統(tǒng)的腳本對(duì)象化結(jié)構(gòu)示意圖;圖4為本發(fā)明系統(tǒng)的分頁(yè)處理模塊的結(jié)構(gòu)示意圖。具體實(shí)施方式下面結(jié)合附圖進(jìn)一步詳細(xì)描述本發(fā)明的技術(shù)方案,但本發(fā)明的保護(hù)范圍不局限于以下所述。如圖1所示,一種大數(shù)據(jù)網(wǎng)絡(luò)爬蟲分頁(yè)選擇方法,它包括以下步驟:s1:第一解析,解析爬蟲腳本;爬蟲腳本是爬蟲引擎能夠識(shí)別的一種網(wǎng)頁(yè)定位符集合體的txt文件,其本質(zhì)是帶有一定格式的字符串文件,用于爬蟲引擎運(yùn)行中過濾與主題無關(guān)的鏈接,有選擇地訪問萬維網(wǎng)上的網(wǎng)頁(yè)與相關(guān)的鏈接并下載相關(guān)所需要的網(wǎng)頁(yè)html信息。s2:第一匹配,獲取匹配符,對(duì)爬蟲腳本內(nèi)容中的標(biāo)簽信息進(jìn)行匹配;進(jìn)一步表述,如圖4所示,使用爬蟲引擎分頁(yè)處理模塊處理s1步驟解析后的腳本詳細(xì)內(nèi)容對(duì)象,獲取頁(yè)面按鈕顯示字段的匹配符,逐一對(duì)腳本詳細(xì)內(nèi)容對(duì)象中的選定的a標(biāo)簽的文本元素(txt元素)和標(biāo)題元素(title元素)進(jìn)行匹配。s3:存儲(chǔ),將匹配成功的標(biāo)簽的特征值存入url隊(duì)列中;將匹配成功后將該a標(biāo)簽的href值存入待爬取url隊(duì)列中等待爬取;如圖2所示。s4:獲取及校驗(yàn),獲取url隊(duì)列中的url連接地址,校驗(yàn)url連接地址;s5:第二匹配,獲取校驗(yàn)后的url連接地址,進(jìn)行地址匹配;如果匹配成功,則可以采用同一處理網(wǎng)頁(yè)解析模塊進(jìn)行解析處理。地址匹配:對(duì)url地址進(jìn)行過濾匹配,一種模糊匹配規(guī)則:例如:http://chengdu.customs.gov.cn/publish/portal130/tab70899/module193591/{page}.html是一個(gè)地址,匹配其中{}中的值是一種匹配變量。再例如:http://chengdu.customs.gov.cn/publish/portal130/tab70899/module193591/page1.html這個(gè)地址將會(huì)被該地址匹配成功;而http://chengdu.customs.gov.cn/publish/page2.html這個(gè)地址將不會(huì)被地址匹配器匹配。s6:第二解析,解析地址匹配成功的url地址的網(wǎng)頁(yè),獲取分頁(yè)信息。爬蟲引擎網(wǎng)頁(yè)解析模塊將處理s5步驟中匹配成功的url地址的網(wǎng)頁(yè),對(duì)其進(jìn)行解析分析頁(yè)面元素獲取分頁(yè)信息后回到步驟s1進(jìn)行處理,完成循環(huán)爬取。進(jìn)一步描述,在步驟s6之后,還包括一個(gè)返回步驟s7,所述的返回步驟s7,在獲取分頁(yè)信息后,返回到步驟s2中,從而實(shí)現(xiàn)循環(huán)爬取。進(jìn)一步描述,在步驟s1之前,還包括一個(gè)配置步驟s0,所述的配置步驟s0,用于配置爬蟲腳本中的分頁(yè)配置部分。所述的配置步驟s0,包括以下子步驟:第一配置,配置分頁(yè)組的定位符;第二配置,配置頁(yè)面按鈕的匹配符;第三配置,配置標(biāo)簽的屬性元素;第四配置,配置標(biāo)題元素;第五配置,配置文本元素。所述的url隊(duì)列為內(nèi)存隊(duì)列。所述的url隊(duì)列為文件隊(duì)列。其中,url隊(duì)列為內(nèi)存隊(duì)列,例如一種簡(jiǎn)單的內(nèi)存隊(duì)列如redis的list鏈表結(jié)構(gòu),主要功能有push、pop等,用于存放url地址是線程安全的;url隊(duì)列也可以是一種文件隊(duì)列,它可以用于耗時(shí)較長(zhǎng)的下載任務(wù),在任務(wù)中途停止后,下次執(zhí)行仍然從中止的url開始繼續(xù)爬取。進(jìn)一步描述,在步驟s1中,包括以下子步驟:s11:讀取爬蟲腳本文件并校驗(yàn),然后把爬蟲腳本文件中的規(guī)則字符串轉(zhuǎn)換為jsonarray;s12:將jsonarray轉(zhuǎn)化為腳本java對(duì)象;s13:解析腳本java對(duì)象中的爬蟲規(guī)則,再將解析結(jié)果設(shè)置到腳本java對(duì)象中。再進(jìn)一步表述,爬蟲引擎先讀取頁(yè)面?zhèn)鱽淼哪_本文件,然后進(jìn)行基礎(chǔ)校驗(yàn)后再把爬蟲腳本文件中規(guī)則字符串轉(zhuǎn)換為jsonarray,接著將jsonarray轉(zhuǎn)化為爬蟲引擎識(shí)別的腳本java對(duì)象,如圖3所示,該對(duì)象含有腳本詳細(xì)內(nèi)容java對(duì)象以及另一個(gè)腳本java對(duì)象。遞歸解析腳本詳細(xì)內(nèi)容對(duì)象中的爬蟲規(guī)則,解析腳本規(guī)則中各個(gè)關(guān)鍵字和關(guān)鍵字的屬性信息,例如:name信息、css信息、save信息、click信息、regex信息、type信息等,然后將解析好的屬性信息和字段重新設(shè)置到腳本詳細(xì)內(nèi)容對(duì)象中。進(jìn)一步描述,在步驟s13中,使用遞歸解析來獲取腳本內(nèi)容對(duì)象中爬蟲規(guī)則中的字段及字段的信息。所述字段的信息包括name信息、css信息、save信息、click信息、regex信息和type信息。進(jìn)一步描述,在步驟s2中,獲取字段中的匹配符,逐一對(duì)腳本內(nèi)容對(duì)象中的標(biāo)簽的文本元素和標(biāo)題元素進(jìn)行匹配。進(jìn)一步描述,在步驟s3中,所述的特征值為href值。進(jìn)一步描述,在步驟s3中,在步驟s2中匹配成功后,將相應(yīng)標(biāo)簽的href值存入待爬取的url隊(duì)列中等待爬取。進(jìn)一步描述,在步驟s5中,對(duì)url地址進(jìn)行過濾匹配,通過模糊匹配變量來實(shí)現(xiàn)地址匹配。一種大數(shù)據(jù)網(wǎng)絡(luò)爬蟲分頁(yè)選擇系統(tǒng),它包括:第一解析模塊,用于解析爬蟲腳本;第一匹配模塊,用于獲取匹配符,對(duì)爬蟲腳本內(nèi)容中的標(biāo)簽信息進(jìn)行匹配;存儲(chǔ)模塊,用于將匹配成功的標(biāo)簽的特征值存入url隊(duì)列中;獲取模塊,用于獲取url隊(duì)列中的url連接地址,校驗(yàn)url連接地址;第二匹配模塊,用于獲取校驗(yàn)后的url連接地址,進(jìn)行地址匹配;第二解析模塊,用于解析地址匹配成功的url地址的網(wǎng)頁(yè),獲取分頁(yè)信息。進(jìn)一步描述,所述的一種大數(shù)據(jù)網(wǎng)絡(luò)爬蟲分頁(yè)選擇系統(tǒng),它還包括:第一配置模塊,用于配置分頁(yè)組的定位符;第二配置模塊,用于配置頁(yè)面按鈕的匹配符;第三配置模塊,用于配置標(biāo)簽的屬性元素;第四配置模塊,用于配置標(biāo)題元素;第五配置模塊,用于配置文本元素。更進(jìn)一步表達(dá),在本發(fā)明的配置步驟中包括:分頁(yè)組為頁(yè)數(shù)標(biāo)簽的csspath地址,定位符為csspath定位符。csspath定位符是css選擇器用于對(duì)網(wǎng)頁(yè)中元素位置的排版進(jìn)行像素級(jí)精確控制的路徑,根據(jù)css路徑則能對(duì)html頁(yè)面中的元素實(shí)現(xiàn)一對(duì)一,一對(duì)多或者多對(duì)一的控制。xpath定位符為xml路徑語(yǔ)言,它是一種用來確定xml(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的子集)文檔中某部分位置的語(yǔ)言。xpath基于xml的樹狀結(jié)構(gòu),提供在數(shù)據(jù)結(jié)構(gòu)樹中找尋節(jié)點(diǎn)的能力。xpath的提出的初衷是將其作為一個(gè)通用的、介于xpointer與xslt間的語(yǔ)法模型。但是,xpath很快的被開發(fā)者采用來當(dāng)作小型查詢語(yǔ)言。在本發(fā)明中,頁(yè)面按鈕的顯示字段包括中文顯示字段、英文顯示字段和數(shù)字顯示字段。進(jìn)一步描述,爬蟲引擎根據(jù)顯示字段進(jìn)行分頁(yè)標(biāo)簽定位。如果頁(yè)面按鈕的匹配符和分頁(yè)組中的標(biāo)簽按鈕匹配成功,則該標(biāo)簽的屬性元素作為頁(yè)面按鈕的分頁(yè)路徑加入待爬取的url隊(duì)列中。選定的標(biāo)簽的屬性元素為href元素。標(biāo)題元素為分頁(yè)組中的所有按鈕的標(biāo)簽的標(biāo)題屬性值。第四配置模塊,用于將標(biāo)簽的標(biāo)題屬性值字段與頁(yè)面按鈕的匹配符逐一匹配,如果過匹配成功,則獲取該標(biāo)簽的href值。第五配置模塊,用于將標(biāo)簽的文本屬性值字段與頁(yè)面按鈕的匹配符逐一匹配,如果匹配成功,則獲取該標(biāo)簽的href值。實(shí)施例:基于本發(fā)明的配置步驟及相應(yīng)的配置模塊,分頁(yè)配置部分的爬蟲腳本如下:1name:‘nextpage’,2css:‘#ess_ctrl193591_listc_aspnetpager>table>tbody>tr>td:nth-child(2)>a’,3type:‘list’,4regex:‘下一頁(yè)’,5rule:{6name:‘href’,7keys:[{8name:‘href’,9type:‘pagelink’,10css:‘a(chǎn)’},{11name:‘title’,12type:‘text’,13css:‘a(chǎn)’},{14name:‘txt’,15type:‘text’,16css:‘a(chǎn)’}]}爬蟲腳本如下:1name:‘liuyugaikuang’,2url:‘http://www.gdwater.gov.cn/yszx/ysgk/lygk’,3keys:[{4name:‘news’,5css:‘body’>div.wrap>div>div.glcom.clearfix>div.gl-right>ul>li,6type:‘list’,7rule:{8name:‘titile’,9keys:[{10name:‘tit’,11type:‘a(chǎn)’,12css:‘li>a’,13click:‘true’,}]}](1)新建爬蟲任務(wù),設(shè)置爬蟲初始種子url、爬蟲任務(wù)名稱。初始種子url,爬蟲引擎能夠通過該url放問到的網(wǎng)頁(yè)作為起點(diǎn),再向深度、或廣度一層層的擴(kuò)展爬取。(2)配置爬蟲策略,設(shè)置爬取一次還是循環(huán)爬取,可以設(shè)置每30分鐘爬取一次或者1小時(shí)爬取1次等,設(shè)置爬蟲線程每次請(qǐng)求間隔時(shí)間,可以設(shè)置1000毫秒、1500毫秒等。(3)配置網(wǎng)絡(luò)爬蟲腳本,本爬蟲腳本是一種json格式的字符串,其頁(yè)面與頁(yè)面間的層級(jí)關(guān)系采用json格式中常見的嵌套格式,并且在爬蟲引擎中則能對(duì)象化成jsonarray,如圖3中所呈現(xiàn)的層級(jí)關(guān)系。進(jìn)一步地,所述的步驟(3)包括子步驟:(31)配置“分頁(yè)組”的csspath定位符,這里的分頁(yè)組是一組選定標(biāo)簽a的集合,其業(yè)務(wù)含義為一系列頁(yè)數(shù)標(biāo)簽(即a標(biāo)簽),例如爬蟲腳本中第6行代碼示意,它是以type為list的一組a標(biāo)簽的csspath地址。(32)配置“下一頁(yè)”按鈕匹配符,該匹配符是用于做智能分頁(yè)的匹配符,例如在分頁(yè)配置部分的爬蟲腳本中第4行代碼示意,“regex”標(biāo)簽其業(yè)務(wù)含義為頁(yè)面按鈕“下一頁(yè)”標(biāo)簽的顯示字段,這個(gè)字段根據(jù)具體網(wǎng)頁(yè)中“下一頁(yè)”的顯示來具體配置,有可能是中文、英文、數(shù)字,爬蟲引擎內(nèi)部會(huì)根據(jù)這個(gè)字段進(jìn)行最終的分頁(yè)a標(biāo)簽定位。(33)配置href元素,該字段為分頁(yè)組中所有按鈕的a標(biāo)簽的href屬性,如果“下一頁(yè)”按鈕匹配符和“分頁(yè)組”中某一a標(biāo)簽按鈕匹配成功后該a標(biāo)的href屬性將會(huì)作為“下一頁(yè)”的分頁(yè)路徑加入爬蟲引擎中待爬取url隊(duì)列,例如在分頁(yè)配置部分的爬蟲腳本中第9行代碼示意,該元素中的type為pagelink的href標(biāo)簽。(34)配置title元素,該字段為分頁(yè)組中所有按鈕的a標(biāo)簽的title的屬性值,該字段將和“下一頁(yè)”按鈕匹配符逐一匹配,如果匹配成功,則獲取該a標(biāo)簽的href值。(35)配置txt元素,該字段為分頁(yè)組中所有按鈕的a標(biāo)簽的txt的屬性值,該字段將和“下一頁(yè)”按鈕匹配符逐一匹配,如過匹配成功,則獲取該a標(biāo)簽的href值。(4)爬蟲引擎讀取頁(yè)面?zhèn)鱽淼哪_本文件,基礎(chǔ)校驗(yàn)后把爬蟲腳本文件中規(guī)則字符串轉(zhuǎn)換為jsonarray。(5)將jsonarray轉(zhuǎn)化為爬蟲引擎識(shí)別的腳本java對(duì)象,該對(duì)象含有腳本詳細(xì)內(nèi)容java對(duì)象以及另一個(gè)腳本java對(duì)象,如圖3所示。(6)遞歸解析(5)步驟中腳本詳細(xì)內(nèi)容對(duì)象中的爬蟲規(guī)則,解析腳本規(guī)則中各個(gè)關(guān)鍵字和其屬性信息,例如:name信息、css信息、save信息、click信息、regex信息、type信息等,然后將解析好的屬性和字段設(shè)置回腳本詳細(xì)內(nèi)容對(duì)象中。(7)爬蟲引擎分頁(yè)處理器處理(6)步驟解析后的腳本詳細(xì)內(nèi)容對(duì)象,獲取regex信息中的匹配符,逐一對(duì)腳本詳細(xì)內(nèi)容對(duì)象中的a標(biāo)簽的txt元素和title元素進(jìn)行匹配。(8)匹配成功后將該a標(biāo)簽的href值存入待爬取url隊(duì)列中等待爬取。(9)爬蟲引擎獲取(8)步驟中待爬取url隊(duì)列中的url連接地址,并加以校驗(yàn)。(10)爬蟲引擎獲?。?)步驟中的地址后,交由下載器進(jìn)行地址下載,下載完網(wǎng)頁(yè)后,根據(jù)url地址匹配,匹配成功后將采取對(duì)應(yīng)的網(wǎng)頁(yè)解析器進(jìn)行解析處理。(11)爬蟲引擎網(wǎng)頁(yè)解析器將會(huì)根據(jù)爬蟲腳本中配置的清洗過濾條件,對(duì)其下載后的網(wǎng)頁(yè)進(jìn)行解析分析過濾,過濾出業(yè)務(wù)想要的頁(yè)面元素,并且處理后入庫(kù)。(12)步驟11處理完畢后返回(8)步驟進(jìn)行循環(huán)爬取網(wǎng)頁(yè)。本發(fā)明直接省略了當(dāng)前網(wǎng)頁(yè)中的頁(yè)面按鈕的html結(jié)構(gòu)是否發(fā)生改變這個(gè)可能造成整個(gè)爬蟲系統(tǒng)無法循環(huán)爬取數(shù)據(jù)的因素,實(shí)現(xiàn)了精準(zhǔn)識(shí)別數(shù)據(jù)的分頁(yè)標(biāo)簽,防止了循環(huán)爬取數(shù)據(jù)過程中斷,提升了網(wǎng)頁(yè)大數(shù)據(jù)的爬取效率,提高了大數(shù)據(jù)分析處理效率。所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為了描述的方便和簡(jiǎn)潔,上述描述的方法、系統(tǒng)和模塊的具體工作過程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過程,在此不再贅述。本發(fā)明所揭露的方法、系統(tǒng)和模塊,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的實(shí)施例僅是示意性的,例如,所述模塊的劃分,可以僅僅是一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)模塊或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以說通過一些接口,系統(tǒng)或模塊的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。所述分立部件說明的模塊可以是或者也可以不是物理上分開的,作為模塊顯示的部件可以是或者可以不是物理模塊,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)模塊上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例的方案目的。另外,在本發(fā)明各個(gè)實(shí)施例中的各功能模塊可以集成在一個(gè)處理模塊中,也可以是各個(gè)模塊單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上模塊集成在一個(gè)模塊中。所述功能如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤、移動(dòng)硬盤、制度存儲(chǔ)器(read-onlymemory,rom)、隨機(jī)存取存儲(chǔ)器(randomaccessmemory,ram)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)理解本發(fā)明并非局限于本文所披露的形式,不應(yīng)看作是對(duì)其他實(shí)施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述構(gòu)想范圍內(nèi),通過上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識(shí)進(jìn)行改動(dòng)。而本領(lǐng)域人員所進(jìn)行的改動(dòng)和變化不脫離本發(fā)明的精神和范圍,則都應(yīng)在本發(fā)明所附權(quán)利要求的保護(hù)范圍內(nèi)。當(dāng)前第1頁(yè)12當(dāng)前第1頁(yè)12
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
兴文县| 青州市| 田阳县| 来宾市| 蒙城县| 新平| 都匀市| 司法| 阜平县| 海门市| 镇雄县| 额尔古纳市| 威海市| 措勤县| 尉犁县| 原平市| 大理市| 平原县| 永靖县| 建宁县| 灵武市| 甘孜县| 泰来县| 龙川县| 荆州市| 西盟| 武乡县| 株洲县| 松潘县| 陆河县| 原平市| 灵川县| 石楼县| 太保市| 合山市| 曲麻莱县| 神池县| 麟游县| 绩溪县| 博野县| 海林市|