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

基于科技服務(wù)信息智能抓取系統(tǒng)數(shù)據(jù)收集方法與流程

文檔序號(hào):11590592閱讀:343來源:國知局

本發(fā)明涉及一種智能抓取方法,尤其涉及一種基于科技服務(wù)信息智能抓取系統(tǒng)數(shù)據(jù)收集方法。



背景技術(shù):

爬蟲,又稱為蜘蛛,它不是昆蟲的名稱,而是人們?yōu)榱诵蜗竺枋鲇?jì)算機(jī)程序在網(wǎng)絡(luò)不斷通過定制的入口網(wǎng)址去提取網(wǎng)頁的鏈接,并根據(jù)這些鏈接再度抓取提取更深的其它未知的鏈接,以此下去,將這樣的程序抓取行為形容成類似爬蟲似的動(dòng)作,稱之為爬蟲,爬蟲是一種自動(dòng)獲取網(wǎng)頁內(nèi)容的程序,是搜索引擎的重要組成部分。

采用人工生成抓取包裝器技術(shù)的抓取系統(tǒng)科技信息抽取結(jié)果精準(zhǔn),但是要對(duì)互聯(lián)網(wǎng)上千個(gè)網(wǎng)站進(jìn)行抓取包裝器的生成和更新維護(hù)工作,普通垂直爬蟲無法很好擔(dān)負(fù)這一工作,只能依賴大量的人力參與。

安全、高效的實(shí)時(shí)抓取技術(shù);在要求高實(shí)時(shí)性抓取的時(shí)候,需要對(duì)抓取網(wǎng)站服務(wù)器頻繁的發(fā)起鏈接和下載請(qǐng)求,這將會(huì)給對(duì)方服務(wù)器造成很大的壓力,進(jìn)而會(huì)導(dǎo)致對(duì)方采用封禁策略如拒絕訪問等來保證服務(wù)器正常工作,這將導(dǎo)致抓取失??;同時(shí)高實(shí)時(shí)的抓取需求,非常耗費(fèi)網(wǎng)絡(luò)、服務(wù)器等硬件資源,導(dǎo)致成本上升。

隨著ajax技術(shù)不斷的普及,以及現(xiàn)在angularjs這種single-pageapplication框架的出現(xiàn),現(xiàn)在js渲染出的頁面越來越多;對(duì)于爬蟲來說,這種頁面是比較討厭的:僅僅提取html內(nèi)容,往往無法拿到有效的信息。



技術(shù)實(shí)現(xiàn)要素:

為解決上述技術(shù)問題,本發(fā)明提供了一種基于科技服務(wù)信息智能抓取系統(tǒng)數(shù)據(jù)收集方法,本發(fā)明通過以下技術(shù)方案來實(shí)現(xiàn):基于科技服務(wù)信息智能抓取系統(tǒng)數(shù)據(jù)收集方法,包括以下步驟:

①數(shù)據(jù)抓?。号老x的配置,用戶通過客戶端的配置模塊、啟動(dòng)模塊發(fā)布抓取任務(wù),并設(shè)置要抓取的網(wǎng)站及設(shè)定相應(yīng)的規(guī)則,包括編碼、抓取間隔、超時(shí)時(shí)間、重試次數(shù)等;

②定時(shí)抓取任務(wù):根據(jù)用戶發(fā)布的任務(wù)動(dòng)態(tài)加載到定時(shí)抓取任務(wù)列表中;

③下載頁面:根據(jù)客戶設(shè)置的抓取規(guī)則和抓取流程,進(jìn)行寬度優(yōu)先抓取算法開始遍歷抓取網(wǎng)頁并將抓取的頁面下載下來,并放置到將要進(jìn)行頁面解析隊(duì)列中等待頁面解析;

④頁面解析:解析隊(duì)列中的頁面,利用jsoup技術(shù)根據(jù)要抓取的信息和設(shè)置的抓取規(guī)則進(jìn)行頁面的解析,提取用戶需要的數(shù)據(jù)信息;

⑤待抓取url:采用鏈接權(quán)重算法將解析過程中發(fā)現(xiàn)的新鏈接放置待抓取url隊(duì)列中等待線程的處理;

⑥數(shù)據(jù)處理和存儲(chǔ):對(duì)頁面數(shù)據(jù)進(jìn)行解析提取處理,對(duì)提取出的二維結(jié)構(gòu)數(shù)據(jù)進(jìn)行存儲(chǔ)。

優(yōu)選地,所述步驟①的配置模塊、啟動(dòng)模塊位于后臺(tái)管理系統(tǒng)中,爬蟲初始入口地址通過指定的爬蟲網(wǎng)址列表文件進(jìn)行靜態(tài)導(dǎo)入,或者通過將爬蟲入口網(wǎng)址放到數(shù)據(jù)庫中進(jìn)行指定。

優(yōu)選地,所述步驟③的抓取規(guī)則是對(duì)爬蟲入口地址是將每一條合法的http網(wǎng)址根據(jù)鏈接權(quán)重算法一行一條的放入到入口列表文件中,或是一條網(wǎng)址在數(shù)據(jù)庫中存放一行,所述抓取流程如下:根據(jù)配置文件中的提供爬蟲入口網(wǎng)址列表進(jìn)行抓取,按照配置的抓取深度進(jìn)行遍歷,首先取一條網(wǎng)址進(jìn)行抓取,然后讀取第一層解析規(guī)則,將第一層的解析規(guī)劃解析后得到的數(shù)據(jù)傳遞到第二層,第二層進(jìn)行深度抓取的時(shí)候,采用第一層解析提取到的網(wǎng)址進(jìn)行再次抓取,并根據(jù)解析規(guī)則列表中的規(guī)則進(jìn)行解析,并將解析得到的數(shù)據(jù)同第一層進(jìn)行合并,傳遞到第三層,以此類推,直到配置的最大層數(shù),一條深度抓取結(jié)束后,會(huì)依次向上返回獲取的數(shù)據(jù),并根據(jù)數(shù)據(jù)配置將抓取提取到的數(shù)據(jù)保存到指定的存儲(chǔ)介質(zhì)中,所述的存儲(chǔ)介質(zhì)是磁盤空間上的自定義的數(shù)據(jù)結(jié)構(gòu)文件,或者是分布式鍵值對(duì)形式的數(shù)據(jù)庫,或者用solr索引分詞后進(jìn)行索引文件存儲(chǔ)。

優(yōu)選地,所述步驟③的寬度優(yōu)先抓取算法指的是大部分網(wǎng)站都是按照樹狀圖來完成頁面分布的,寬度優(yōu)先抓取策略就是按照樹狀圖結(jié)構(gòu),優(yōu)先抓取同級(jí)鏈接,待同級(jí)鏈接抓取完成后,再抓取下一級(jí)鏈接。優(yōu)選地,所述步驟⑤的鏈接權(quán)重算法,因?yàn)橐粋€(gè)頁面內(nèi)并非所有的鏈接都參與權(quán)重傳遞,搜索引擎會(huì)將已經(jīng)過濾過的鏈接再度剔除15%;但這種非完全遍歷權(quán)重計(jì)算需要積累到一定數(shù)量的鏈接后才能再次開始計(jì)算,所以更新周期比較慢,無法滿足用戶對(duì)即時(shí)信息的需求;所以在此基礎(chǔ)上,出現(xiàn)了實(shí)時(shí)權(quán)重分配抓取策略;即當(dāng)蜘蛛完成抓取頁面并入口后,馬上進(jìn)行權(quán)重分配,將權(quán)重重新分配待抓取鏈接庫,然后蜘蛛根據(jù)權(quán)重高低來進(jìn)行抓取。

所述的鏈接權(quán)重算法,其算法公式為:

其中r代表鏈接所獲得的pagerank,s代表鏈接所包含的鏈接數(shù)量,q代表是否參與傳遞,β代表阻尼因數(shù)。從公式中可以發(fā)現(xiàn),決定鏈接權(quán)重的是q,如果鏈接被發(fā)現(xiàn)作弊,或者搜索引擎人工清除,或者其他原因,q被設(shè)為0,那么再多的外鏈都沒用。β是阻尼因數(shù),主要作用是防止權(quán)重0的出現(xiàn),導(dǎo)致鏈接無法參與權(quán)重傳遞,以及防止作弊的出現(xiàn)。阻尼因數(shù)β一般為0.85。

優(yōu)選地,為了解決angularjs這種single-pageapplication框架渲染的頁面,使用selenium,它定義了一個(gè)downloader,在下載頁面時(shí),用瀏覽器內(nèi)核進(jìn)行渲染。

本發(fā)明具有以下有益效果:

本發(fā)明能夠滿足爬蟲通用性要求,適合科技服務(wù)信息智能抓取系統(tǒng)數(shù)據(jù)收集的需求,擴(kuò)展方便,插件式開發(fā);在具體業(yè)務(wù)邏輯上增加抓取規(guī)則和抓取流程配置,抓取網(wǎng)頁寬度、深度,數(shù)據(jù)庫配置或索引配置,就可以開啟智能化抓取采集信息。

附圖說明

圖1是本發(fā)明的流程示意圖。

圖2是本發(fā)明寬度優(yōu)先抓取鏈接結(jié)構(gòu)示意圖。

圖3是本發(fā)明寬度優(yōu)先抓取抓取順序示意圖。

具體實(shí)施方式

下面將結(jié)合本發(fā)明的附圖,對(duì)本發(fā)明的技術(shù)方案進(jìn)行清楚、完整地描述。

基于科技服務(wù)信息智能抓取系統(tǒng)數(shù)據(jù)收集方法,包括以下步驟:

①數(shù)據(jù)抓?。号老x的配置,用戶通過客戶端的配置模塊、啟動(dòng)模塊發(fā)布抓取任務(wù),并設(shè)置要抓取的網(wǎng)站及設(shè)定相應(yīng)的規(guī)則,包括編碼、抓取間隔、超時(shí)時(shí)間、重試次數(shù)等;

②定時(shí)抓取任務(wù):根據(jù)用戶發(fā)布的任務(wù)動(dòng)態(tài)加載到定時(shí)抓取任務(wù)列表中;

③下載頁面:根據(jù)客戶設(shè)置的抓取規(guī)則和抓取流程,進(jìn)行寬度、深度優(yōu)先抓取算法開始遍歷抓取網(wǎng)頁并將抓取的頁面下載下來,并放置到將要進(jìn)行頁面解析隊(duì)列中等待頁面解析;

④頁面解析:解析隊(duì)列中的頁面,利用jsoup技術(shù)根據(jù)要抓取的信息和設(shè)置的抓取規(guī)則進(jìn)行頁面的解析,提取用戶需要的數(shù)據(jù)信息;

⑤待抓取url:采用鏈接權(quán)重算法將解析過程中發(fā)現(xiàn)的新鏈接放置待抓取url隊(duì)列中等待線程的處理;⑥數(shù)據(jù)處理和存儲(chǔ):對(duì)頁面數(shù)據(jù)進(jìn)行解析提取處理,對(duì)提取出的二維結(jié)構(gòu)數(shù)據(jù)進(jìn)行存儲(chǔ)。

優(yōu)選地,所述步驟①的配置模塊、啟動(dòng)模塊位于后臺(tái)管理系統(tǒng)中,爬蟲初始入口地址通過指定的爬蟲網(wǎng)址列表文件進(jìn)行靜態(tài)導(dǎo)入,或者通過將爬蟲入口網(wǎng)址放到數(shù)據(jù)庫中進(jìn)行指定。

優(yōu)選地,所述步驟③的抓取規(guī)則是對(duì)爬蟲入口地址是將每一條合法的http網(wǎng)址根據(jù)鏈接權(quán)重算法一行一條的放入到入口列表文件中,或是一條網(wǎng)址在數(shù)據(jù)庫中存放一行,所述抓取流程如下:根據(jù)配置文件中的提供爬蟲入口網(wǎng)址列表進(jìn)行抓取,按照配置的抓取深度進(jìn)行遍歷,首先取一條網(wǎng)址進(jìn)行抓取,然后讀取第一層解析規(guī)則,將第一層的解析規(guī)劃解析后得到的數(shù)據(jù)傳遞到第二層,第二層進(jìn)行深度抓取的時(shí)候,采用第一層解析提取到的網(wǎng)址進(jìn)行再次抓取,并根據(jù)解析規(guī)則列表中的規(guī)則進(jìn)行解析,并將解析得到的數(shù)據(jù)同第一層進(jìn)行合并,傳遞到第三層,以此類推,直到配置的最大層數(shù),一條深度抓取結(jié)束后,會(huì)依次向上返回獲取的數(shù)據(jù),并根據(jù)數(shù)據(jù)配置將抓取提取到的數(shù)據(jù)保存到指定的存儲(chǔ)介質(zhì)中,所述的存儲(chǔ)介質(zhì)是磁盤空間上的自定義的數(shù)據(jù)結(jié)構(gòu)文件,或者是分布式鍵值對(duì)形式的數(shù)據(jù)庫,或者用solr索引分詞后進(jìn)行索引文件存儲(chǔ)。

優(yōu)選地,所述步驟③的寬度優(yōu)先抓取算法指的是大部分網(wǎng)站都是按照樹狀圖來完成頁面分布的,寬度優(yōu)先抓取策略就是按照樹狀圖結(jié)構(gòu),優(yōu)先抓取同級(jí)鏈接,待同級(jí)鏈接抓取完成后,再抓取下一級(jí)鏈接,即先從入口一級(jí)頁面的初始鏈接a抓取,再抓取下一級(jí)鏈接b和c,待同級(jí)鏈接b和c抓取完成后,再抓取下一級(jí)鏈接d、e和f,其抓取順序?yàn)椋篴→b→c→d→e→f。

優(yōu)選地,所述步驟⑤的鏈接權(quán)重算法,因?yàn)橐粋€(gè)頁面內(nèi)并非所有的鏈接都參與權(quán)重傳遞,搜索引擎會(huì)將已經(jīng)過濾過的鏈接再度剔除15%;但這種非完全遍歷權(quán)重計(jì)算需要積累到一定數(shù)量的鏈接后才能再次開始計(jì)算,所以更新周期比較慢,無法滿足用戶對(duì)即時(shí)信息的需求;所以在此基礎(chǔ)上,出現(xiàn)了實(shí)時(shí)權(quán)重分配抓取策略;即當(dāng)蜘蛛完成抓取頁面并入口后,馬上進(jìn)行權(quán)重分配,將權(quán)重重新分配待抓取鏈接庫,然后蜘蛛根據(jù)權(quán)重高低來進(jìn)行抓取。

所述的鏈接權(quán)重算法,其算法公式為:

其中r代表鏈接所獲得的pagerank,s代表鏈接所包含的鏈接數(shù)量,q代表是否參與傳遞,β代表阻尼因數(shù)。從公式中可以發(fā)現(xiàn),決定鏈接權(quán)重的是q,如果鏈接被發(fā)現(xiàn)作弊,或者搜索引擎人工清除,或者其他原因,q被設(shè)為0,那么再多的外鏈都沒用。β是阻尼因數(shù),主要作用是防止權(quán)重0的出現(xiàn),導(dǎo)致鏈接無法參與權(quán)重傳遞,以及防止作弊的出現(xiàn)。阻尼因數(shù)β一般為0.85。優(yōu)選地,為了解決angularjs這種single-pageapplication框架渲染的頁面,使用selenium,它定義了一個(gè)downloader,在下載頁面時(shí),用瀏覽器內(nèi)核進(jìn)行渲染。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
儋州市| 望城县| 姜堰市| 呈贡县| 柳林县| 马鞍山市| 曲阜市| 清新县| 武清区| 碌曲县| 克什克腾旗| 丰原市| 北辰区| 江西省| 张北县| 贡山| 吉木乃县| 兴化市| 永修县| 凌源市| 华亭县| 和平县| 舞钢市| 桃园市| 黑水县| 丹凤县| 张家口市| 永清县| 珠海市| 乐山市| 庆元县| 佳木斯市| 隆林| 鄂温| 邻水| 长寿区| 清镇市| 建阳市| 淮北市| 司法| 北流市|