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

一種大數據網絡爬蟲分頁配置方法與流程

文檔序號:11620682閱讀:345來源:國知局
本發(fā)明涉及大數據分析處理
技術領域
:,具體是一種大數據網絡爬蟲分頁配置方法。
背景技術
::隨著網絡的迅速發(fā)展,每時每刻萬維網都在產生各式各樣的數據。目前,中國的網站總數約454萬個,網頁數量突破2000億個,浪涌般的數據蘊藏著驚人的價值。如何有效地提取并利用這些信息成為一個巨大的挑戰(zhàn)。如何讓這些繁雜無序的互聯網數據產生價值,如何把萬維網變成自家的數據庫,如何讓企業(yè)輕松駕馭這些海量數據信息來進行創(chuàng)新、快速洞悉商機,搜索引擎(searchengine),例如傳統(tǒng)的通用搜索引擎google和baidu等,作為一種輔助人們檢索信息的工具成為用戶訪問萬維網的入口和指南,被人們廣泛使用。但是,這些通用性搜索引擎也存在著一定的局限性,為了盡可能大的網絡覆蓋率,其搜索出來的數據龐雜精準度低,所返回的結果包中含大量用戶不關心的網頁。在目前大數據產業(yè)的背景下,網絡爬蟲通常是一種快速獲取互聯網數據的有效途徑。其中,聚焦類爬蟲并不追求大的覆蓋,而將目標定為抓取與某一特定主題內容相關的網頁,它根據既定的抓取目標,根據一定的網頁分析算法過濾與主題無關的鏈接,有選擇的訪問萬維網上的網頁與相關的鏈接獲取所需要的信息。往往我們需要獲取的數據是在網頁有列表或在表格信息中,而這些數據一般都是具有分頁的,聚焦爬蟲需要精準識別其分頁標簽,才能循環(huán)獲取下一頁的數據。當在爬取數據時,有些網頁中的“下一頁”html結構在點擊幾次“下一頁”后會發(fā)生改變,數據結構發(fā)生改變后則不能通過原來的html定位符定位到“下一頁”這個按鈕,導致無法循環(huán)爬取網頁數據,而爬蟲腳本的配置方式,直接影響大數據網絡爬蟲的循環(huán)爬蟲效率。例如,在網絡頁面的第1頁時,頁面按鈕“下一頁“的css路徑為:body>div>div.main>div.jright>div.page>a:nth-child(2),而當循環(huán)爬取到第6頁的時候,由于分頁組中的1、2、3、4等數字下標發(fā)生變化,導致頁面按鈕“下一頁“的css路徑變更為:body>div>div.main>div.jright>div.page>a:nth-child(3),下一頁結構混亂,導致無法循環(huán)判斷,不能實現循環(huán)爬取網頁。技術實現要素:本發(fā)明的目的在于克服現有技術的不足,提供一種大數據網絡爬蟲分頁配置方法,通過對爬蟲腳本分頁部分的配置,能夠防止網頁結構混亂對循環(huán)爬取的影響,保障爬蟲程序對網頁數據循環(huán)爬取,尤其是在超大數據量的網絡爬蟲系統(tǒng)中,有助于提高爬蟲產品的網絡爬取效率。本發(fā)明的目的是通過以下技術方案來實現的:一種大數據網絡爬蟲分頁配置方法,其特征在于,它包括以下步驟:(1)第一配置,配置分頁組的定位符;(2)第二配置,配置頁面按鈕的匹配符;(3)第三配置,配置標簽的屬性元素;(4)第四配置,配置標題元素;(5)第五配置,配置文本元素。所述的分頁組為頁數標簽的csspath地址。所述的定位符為csspath定位符。所述的第二配置,根據網頁中頁面按鈕的顯示字段來配置。所述頁面按鈕的顯示字段包括中文顯示字段、英文顯示字段和數字顯示字段。所述的第二配置,如果頁面按鈕的匹配符和分頁組中的標簽按鈕匹配成功,則該標簽的屬性元素作為頁面按鈕的分頁路徑加入待爬取的url隊列中。所述的標簽的屬性元素為href元素。所述的標題元素為分頁組中的所有按鈕的標簽的標題屬性值。所述的第四配置,將標簽的標題屬性值字段與頁面按鈕的匹配符逐一匹配,如果過匹配成功,則獲取該標簽的href值。所述的第五配置,將標簽的文本屬性值字段與頁面按鈕的匹配符逐一匹配,如果匹配成功,則獲取該標簽的href值。所述的文本元素為分頁組中所有按鈕的標簽的文本屬性值。進一步,爬蟲引擎根據顯示字段進行分頁標簽定位。本發(fā)明的有益效果是:(1)本發(fā)明通過對爬蟲腳本的分頁部分進行配置,采用一種可配置匹配符,在一組選定的標簽中自動匹配其屬性信息,然后返回特征值信息,用于分頁數據精準指向相應的頁面按鈕,防止網絡頁面結構混亂導致無法循環(huán)爬取網頁數據,充分保障了大數據網絡爬蟲產品能夠循環(huán)爬取數據;(2)本發(fā)明應用到爬蟲腳本中,能夠增強網頁過濾能力,尤其是在應用聚焦爬蟲腳本,在選定的標簽中進行特征值匹配和快速定位,可以快速過濾掉與主題無關的鏈接,有選擇地高效訪問萬維網上的網頁和相關的鏈接并下載所需要的相關網頁的html信息;(3)本發(fā)明還可應用到搜索引擎中,通過自動匹配標簽屬性信息,返回特征值信息,精準指向頁面按鈕數據,可以快速抓取網頁數據,再進一步結合網頁分析算法過濾與主題無關的鏈接,可以進一步提高搜索精度。附圖說明圖1為本發(fā)明的步驟示意圖;圖2為本發(fā)明的腳本對象化結構示意圖;圖3為本發(fā)明的實施例—用于大數據爬蟲的分頁處理流程圖;圖4為本發(fā)明的實施例—用于大數據爬蟲的分頁處理模塊的結構示意圖。具體實施方式下面結合附圖進一步詳細描述本發(fā)明的技術方案,但本發(fā)明的保護范圍不局限于以下所述。如圖1所示,一種大數據網絡爬蟲分頁配置方法,它包括以下步驟:(1)第一配置,配置分頁組的定位符;(2)第二配置,配置頁面按鈕的匹配符;(3)第三配置,配置標簽的屬性元素;(4)第四配置,配置標題元素;(5)第五配置,配置文本元素。所述的分頁組為頁數標簽的csspath地址。所述的定位符為csspath定位符。所述頁面按鈕的顯示字段包括中文顯示字段、英文顯示字段和數字顯示字段。進一步描述,爬蟲引擎根據顯示字段進行分頁標簽定位。所述的第二配置,如果頁面按鈕的匹配符和分頁組中的標簽按鈕匹配成功,則該標簽的屬性元素作為頁面按鈕的分頁路徑加入待爬取的url隊列中。所述的標簽的屬性元素為href元素。所述的標題元素為分頁組中的所有按鈕的標簽的標題屬性值。所述的第四配置,將標簽的標題屬性值字段與頁面按鈕的匹配符逐一匹配,如果過匹配成功,則獲取該標簽的href值。所述的第五配置,將標簽的文本屬性值字段與頁面按鈕的匹配符逐一匹配,如果匹配成功,則獲取該標簽的href值。實施例1:將本發(fā)明應用到一種大數據網絡爬蟲分頁選擇方法中,它包括以下步驟:s0:分別配置分頁組的定位符、頁面按鈕的匹配符、標簽的屬性元素、標題元素和文本元素;進一步描述,在本發(fā)明的配置步驟中包括:分頁組為頁數標簽的csspath地址,定位符為csspath定位符。csspath定位符是css選擇器用于對網頁中元素位置的排版進行像素級精確控制的路徑,根據css路徑則能對html頁面中的元素實現一對一,一對多或者多對一的控制。xpath定位符為xml路徑語言,它是一種用來確定xml(標準通用標記語言的子集)文檔中某部分位置的語言。xpath基于xml的樹狀結構,提供在數據結構樹中找尋節(jié)點的能力。xpath的提出的初衷是將其作為一個通用的、介于xpointer與xslt間的語法模型。但是xpath很快的被開發(fā)者采用來當作小型查詢語言。s1:解析爬蟲腳本,爬蟲腳本是爬蟲引擎能夠識別的一種網頁定位符集合體的txt文件,其本質是帶有一定格式的字符串文件,用于爬蟲引擎運行中過濾與主題無關的鏈接,有選擇地訪問萬維網上的網頁與相關的鏈接并下載相關所需要的網頁html信息。s2:獲取匹配符,對爬蟲腳本內容中的標簽信息進行匹配,進一步表述,如圖4所示,使用爬蟲引擎分頁處理模塊處理s1步驟解析后的腳本詳細內容對象,獲取regex中的匹配符,逐一對腳本詳細內容對象中的選定的a標簽的文本元素(txt元素)和標題元素(title元素)進行匹配;s3:將匹配成功的標簽的特征值存入url隊列中;將匹配成功后將該a標簽的href值存入待爬取url隊列中等待爬?。籹4:獲取及校驗,獲取url隊列中的url連接地址,校驗url連接地址;s5:獲取校驗后的url連接地址,進行地址匹配;如果匹配成功,則可以采用同一處理網頁解析模塊進行解析處理。地址匹配:對url地址進行過濾匹配,一種模糊匹配規(guī)則:例如:http://chengdu.customs.gov.cn/publish/portal130/tab70899/module193591/{page}.html是一個地址,匹配其中{}中的值是一種匹配變量。再例如:http://chengdu.customs.gov.cn/publish/portal130/tab70899/module193591/page1.html這個地址將會被該地址匹配成功;而http://chengdu.customs.gov.cn/publish/page2.html這個地址將不會被地址匹配器匹配。s6:解析地址匹配成功的url地址的網頁,獲取分頁信息,爬蟲引擎網頁解析模塊將處理s5步驟中匹配成功的url地址的網頁,對其進行解析分析頁面元素獲取分頁信息后回到步驟s1進行處理,完成循環(huán)爬取。進一步描述,在步驟s6之后,還包括一個返回步驟s7,所述的返回步驟s7,在獲取分頁信息后,返回到步驟s2中,從而實現循環(huán)爬取。其中,url隊列為內存隊列,例如一種簡單的內存隊列如redis的list鏈表結構,主要功能有push、pop等,用于存放url地址是線程安全的;url隊列也可以是一種文件隊列,它可以用于耗時較長的下載任務,在任務中途停止后,下次執(zhí)行仍然從中止的url開始繼續(xù)爬取。進一步描述,在步驟s1中,包括以下子步驟:s11:讀取爬蟲腳本文件并校驗,然后把爬蟲腳本文件中的規(guī)則字符串轉換為jsonarray;s12:將jsonarray轉化為腳本java對象;s13:解析腳本java對象中的爬蟲規(guī)則,再將解析結果設置到腳本java對象中。再進一步表述,爬蟲引擎先讀取頁面?zhèn)鱽淼哪_本文件,然后進行基礎校驗后再將爬蟲腳本文件中規(guī)則字符串轉換為jsonarray,接著將jsonarray轉化為爬蟲引擎識別的腳本java對象,它含有腳本詳細內容java對象以及另一個腳本java對象,通過遞歸解析腳本詳細內容對象中的爬蟲規(guī)則和解析腳本規(guī)則中各個關鍵字和關鍵字的屬性信息,例如:name信息、css信息、save信息、click信息、regex信息、type信息等,然后將解析好的屬性信息和字段信息設置回腳本詳細內容java對象中。進一步描述,在步驟s13中,使用遞歸解析來獲取腳本內容對象中爬蟲規(guī)則中的字段及字段的信息。所述字段的信息包括name信息、css信息、save信息、click信息、regex信息和type信息。進一步描述,在步驟s2中,獲取字段中的匹配符,逐一對腳本內容對象中的標簽的文本元素和標題元素進行匹配。進一步描述,在步驟s3中,所述的特征值為href值。進一步描述,在步驟s3中,在步驟s2中匹配成功后,將相應標簽的href值存入待爬取的url隊列中等待爬取。進一步描述,在步驟s5中,對url地址進行過濾匹配,通過模糊匹配變量來實現地址匹配。實施例2:將本發(fā)明應用于一種大數據網絡爬蟲分頁選擇系統(tǒng),它包括:第一配置模塊,用于配置分頁組的定位符;第二配置模塊,用于配置頁面按鈕的匹配符;第三配置模塊,用于配置標簽的屬性元素;第四配置模塊,用于配置標題元素;第五配置模塊,用于配置文本元素;第一解析模塊,用于解析爬蟲腳本;第一匹配模塊,用于獲取匹配符,對爬蟲腳本內容中的標簽信息進行匹配;存儲模塊,用于將匹配成功的標簽的特征值存入url隊列中;獲取模塊,用于獲取url隊列中的url連接地址,校驗url連接地址;第二匹配模塊,用于獲取校驗后的url連接地址,進行地址匹配;第二解析模塊,用于解析地址匹配成功的url地址的網頁,獲取分頁信息。在本發(fā)明中,頁面按鈕的顯示字段包括中文顯示字段、英文顯示字段和數字顯示字段。爬蟲引擎可以根據顯示字段進行分頁標簽定位,如果頁面按鈕的匹配符和分頁組中的標簽按鈕匹配成功,則該標簽的屬性元素作為頁面按鈕的分頁路徑加入待爬取的url隊列中。選定的標簽的屬性元素可以為href元素,標題元素可以為分頁組中的所有按鈕的標簽的標題屬性值。將標簽的標題屬性值字段與頁面按鈕的匹配符逐一匹配,如果過匹配成功,則獲取該標簽的href值,并且,將標簽的文本屬性值字段與頁面按鈕的匹配符逐一匹配,如果匹配成功,則獲取該標簽的href值。基于本發(fā)明的配置方法以及承載方法步驟的相應配置模塊,再一實施例,分頁配置部分的爬蟲腳本,可以配置如下:1name:‘nextpage’,2css:‘#ess_ctrl193591_listc_aspnetpager>table>tbody>tr>td:nth-child(2)>a’,3type:‘list’,4regex:‘下一頁’,5rule:{6name:‘href’,7keys:[{8name:‘href’,9type:‘pagelink’,10css:‘a’},{11name:‘title’,12type:‘text’,13css:‘a’},{14name:‘txt’,15type:‘text’,16css:‘a’}]}爬蟲腳本如下: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’,12css:‘li>a’,13click:‘true’,}]}]其中,本領域技術人員依照如上爬蟲分頁部分的配置方式以及相應的爬蟲腳本,可以通過以下步驟,實施本發(fā)明:(1)新建爬蟲任務,設置爬蟲初始種子url、爬蟲任務名稱。初始種子url,爬蟲引擎能夠通過該url放問到的網頁作為起點,再向深度、或廣度一層層的擴展爬取。(2)配置爬蟲策略,設置爬取一次還是循環(huán)爬取,可以設置每30分鐘爬取一次或者1小時爬取1次等,設置爬蟲線程每次請求間隔時間,可以設置1000毫秒、1500毫秒等。(3)配置網絡爬蟲腳本,本爬蟲腳本是一種json格式的字符串,其頁面與頁面間的層級關系采用json格式中常見的嵌套格式,并且在爬蟲引擎中則能對象化成jsonarray如圖2中所呈現的層級關系。進一步地,步驟(3)包括子步驟:(31)配置“分頁組”csspath定位符,分頁組:是一組選定標簽a的集合,其業(yè)務含義為一系列頁數標簽(a標簽)。例如爬蟲腳本中第6行代碼示意,它是以type為list的一組a標簽的csspath地址。(32)配置“下一頁”按鈕匹配符,該匹配符是用于做智能分頁的匹配符,例如在分頁配置部分的爬蟲腳本中第4行代碼示意,“regex”標簽其業(yè)務含義為頁面按鈕標簽的顯示字段,例如“下一頁”的顯示字段,這個字段根據具體網頁中“下一頁”的顯示來具體配置,有可能是中文、英文、數字,爬蟲引擎根據這個字段進行最終的分頁a標簽定位。(33)配置href元素,該字段為分頁組中所有按鈕的a標簽的href屬性,如果“下一頁”按鈕匹配符和“分頁組”中某一a標簽按鈕匹配成功后該a標的href屬性將會作為“下一頁”的分頁路徑加入爬蟲引擎中“待爬取url隊列”。例如在分頁配置部分的爬蟲腳本中第9行代碼示意,該元素中的type為pagelink的href標簽。(34)配置title元素,該字段為分頁組中所有按鈕的a標簽的title的屬性值,該字段將和“下一頁”按鈕匹配符進行逐一匹配,如果匹配成功則獲取該a標簽的href值。(35)配置txt元素,該字段為分頁組中所有按鈕的a標簽的txt的屬性值,該字段將和“下一頁”按鈕匹配符進行逐一匹配,如過匹配成功則獲取該a標簽的href值。(4)爬蟲引擎讀取頁面?zhèn)鱽淼哪_本文件,基礎校驗后把爬蟲腳本文件中規(guī)則字符串轉換為jsonarray。(5)如圖2所示,將jsonarray轉化為爬蟲引擎識別的腳本java對象,該對象含有腳本詳細內容java對象以及另一個腳本java對象,如圖3所示。(6)遞歸解析(5)步驟中腳本詳細內容對象中的爬蟲規(guī)則,解析腳本規(guī)則中各個關鍵字和其屬性信息,例如:name信息、css信息、save信息、click信息、regex信息、type信息等,然后將解析好的屬性和字段重新設置到腳本詳細內容對象中。(7)爬蟲引擎分頁處理器處理(6)步驟解析后的腳本詳細內容對象,獲取regex中的匹配符,逐一對腳本詳細內容對象中的a標簽的txt元素和title元素進行匹配。(8)匹配成功后將該a標簽的href值存入待爬取url隊列中等待爬取。(9)爬蟲引擎獲?。?)步驟中待爬取url隊列中的url連接地址,并加以校驗。(10)爬蟲引擎獲?。?)步驟中的地址后,交由下載器進行地址下載,下載完網頁后,根據url地址匹配,匹配成功后將采取對應的網頁解析器進行解析處理。(11)爬蟲引擎網頁解析器將會根據爬蟲腳本中配置的清洗過濾條件,對其下載后的網頁進行解析分析過濾,過濾出業(yè)務想要的頁面元素,并且處理后入庫。(12)步驟11處理完畢后返回(8)步驟進行循環(huán)爬取網頁。本發(fā)明應用到爬蟲腳本中,能夠增強網頁過濾能力,尤其是在應用聚焦爬蟲腳本,在選定的標簽中進行特征值匹配和快速定位,可以快速過濾掉與主題無關的鏈接,有選擇地高效訪問萬維網上的網頁和相關的鏈接并下載所需要的相關網頁的html信息。所屬領域的技術人員可以清楚地了解到,為了描述的方便和簡潔,上述描述的方法、系統(tǒng)和模塊的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。本發(fā)明所揭露的方法、系統(tǒng)和模塊,可以通過其它的方式實現。例如,以上所描述的實施例僅是示意性的,例如,所述模塊的劃分,可以僅僅是一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個模塊或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以說通過一些接口,系統(tǒng)或模塊的間接耦合或通信連接,可以是電性,機械或其它的形式。所述分立部件說明的模塊可以是或者也可以不是物理上分開的,作為模塊顯示的部件可以是或者可以不是物理模塊,即可以位于一個地方,或者也可以分布到多個網絡模塊上??梢愿鶕嶋H的需要選擇其中的部分或者全部模塊來實現本實施例的方案目的。另外,在本發(fā)明各個實施例中的各功能模塊可以集成在一個處理模塊中,也可以是各個模塊單獨物理存在,也可以兩個或兩個以上模塊集成在一個模塊中。所述功能如果以軟件功能模塊的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀存儲介質中。基于這樣的理解,本發(fā)明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:u盤、移動硬盤、制度存儲器(read-onlymemory,rom)、隨機存取存儲器(randomaccessmemory,ram)、磁碟或者光盤等各種可以存儲程序代碼的介質。以上所述僅是本發(fā)明的優(yōu)選實施方式,應當理解本發(fā)明并非局限于本文所披露的形式,不應看作是對其他實施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述構想范圍內,通過上述教導或相關領域的技術或知識進行改動。而本領域人員所進行的改動和變化不脫離本發(fā)明的精神和范圍,則都應在本發(fā)明所附權利要求的保護范圍內。當前第1頁12當前第1頁12
當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
乌拉特中旗| 沾益县| 保康县| 长泰县| 镇巴县| 都昌县| 嘉荫县| 孝义市| 家居| 扶沟县| 石城县| 榆社县| 济宁市| 平塘县| 枣阳市| 平阳县| 象山县| 锡林郭勒盟| 安顺市| 韶关市| 凤凰县| 谷城县| 宁波市| 额敏县| 高阳县| 尖扎县| 灵石县| 浦县| 商河县| 隆回县| 安化县| 峨山| 壤塘县| 正安县| 遂宁市| 丰县| 蒙自县| 桐庐县| 古丈县| 册亨县| 濮阳县|