国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于可靠隊(duì)列服務(wù)的高效分布式爬蟲系統(tǒng)設(shè)計(jì)的制作方法

      文檔序號(hào):11177439閱讀:714來源:國(guó)知局
      一種基于可靠隊(duì)列服務(wù)的高效分布式爬蟲系統(tǒng)設(shè)計(jì)的制造方法與工藝

      本發(fā)明涉及計(jì)算機(jī)軟件領(lǐng)域,特別是涉及分布式信息抓取,行業(yè)數(shù)據(jù)積累使用場(chǎng)景。



      背景技術(shù):

      隨著信息技術(shù)的發(fā)展,人們獲取信息的方式也越來越精進(jìn),人們不再只是通過報(bào)紙和電視來獲取各種資訊信息,而是通過app應(yīng)用來查看app應(yīng)用提供商已經(jīng)歸納好的資訊信息。這些app應(yīng)用提供商中,當(dāng)然也包括大部分互聯(lián)網(wǎng)金融企業(yè)。爬?系統(tǒng),?稱作“網(wǎng)絡(luò)蜘蛛系統(tǒng)”是?種按照?定的規(guī)則?動(dòng)的從萬維?中各個(gè)?站抓取信息的系統(tǒng)?;ヂ?lián)??融企業(yè)積累?業(yè)數(shù)據(jù)需要從?業(yè)相關(guān)站點(diǎn)抓取有價(jià)值的內(nèi)容信息,因此都需要建???的?套爬?系統(tǒng)。爬蟲系統(tǒng)利用萬維網(wǎng)及時(shí)抓取企業(yè)所需要的資訊信息,通過對(duì)不同的抓取目標(biāo)網(wǎng)站配置相應(yīng)規(guī)則來實(shí)現(xiàn)個(gè)性化內(nèi)容抓取。

      爬?系統(tǒng)設(shè)計(jì)是否優(yōu)良主要看以下?個(gè)??:

      (1)爬?系統(tǒng)的穩(wěn)定性,即是否存在單點(diǎn)故障;

      (2)爬?系統(tǒng)的及時(shí)性,即站點(diǎn)新發(fā)布的內(nèi)容是否在要求的時(shí)間內(nèi)被系統(tǒng)抓取到;

      (3)爬?系統(tǒng)的伸縮性,即當(dāng)需要爬取的站點(diǎn)增多或減少時(shí),爬?系統(tǒng)是否能夠輕易地通過增加或減少系統(tǒng)資源(系統(tǒng)資源包括:進(jìn)程數(shù),機(jī)器數(shù)量,外?帶寬等等)來適應(yīng)相應(yīng)的爬取壓?;

      (4)爬?系統(tǒng)的可控性,即是否能夠?qū)χ匾炔煌恼军c(diǎn)分配適宜的系統(tǒng)資源,是否能通過配置來實(shí)現(xiàn)對(duì)不同站點(diǎn)的個(gè)性化抓取;

      (5)爬?系統(tǒng)的有效監(jiān)控,即是否能夠有效監(jiān)控爬?系統(tǒng)的運(yùn)?狀態(tài),包括:頁?解析錯(cuò)誤,各站點(diǎn)的實(shí)時(shí)抓取數(shù)量,提供報(bào)警機(jī)制等等。

      該發(fā)明從以上各個(gè)??著?,基于通過binlog?式實(shí)現(xiàn)的主從隊(duì)列服務(wù)創(chuàng)造出了?個(gè)?效,穩(wěn)定,可靠,可伸縮的分布式爬?系統(tǒng)。



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

      本發(fā)明的目的是為了解決目前互聯(lián)網(wǎng)金融企業(yè)無法高效可靠地積累資訊數(shù)據(jù)的問題,設(shè)計(jì)出一種基于binlog主從隊(duì)列服務(wù),并且具有高穩(wěn)定性、及時(shí)性、高伸縮性、可控性的分布式爬蟲系統(tǒng)。

      為了解決上述問題,本發(fā)明采用的技術(shù)方案是:總體上采用分布式系統(tǒng)架構(gòu)。系統(tǒng)整體可分成七大模塊:調(diào)度模塊、抓取及頁面解析模塊、附件處理模塊、圖片處理模塊、監(jiān)控模塊、配置平臺(tái)模塊、http代理模塊。

      同時(shí)為實(shí)現(xiàn)合理的調(diào)度功能,系統(tǒng)的核心模塊:調(diào)度模塊和抓取及頁面解析模塊通過基于binlog實(shí)現(xiàn)主從邏輯的可靠隊(duì)列服務(wù)來進(jìn)行通信。

      進(jìn)一步,所述調(diào)度模塊為爬蟲系統(tǒng)負(fù)責(zé)調(diào)度待抓取站點(diǎn)的模塊,不同的待抓取站點(diǎn)重要程度不同,調(diào)度的頻率和優(yōu)先級(jí)就存在差別;“通常重要度高的站點(diǎn)調(diào)度要頻繁一些,分配的抓取資源要多一些”,調(diào)度模塊正是實(shí)現(xiàn)這一點(diǎn)而設(shè)計(jì)的。

      進(jìn)一步,所述抓取及頁面解析模塊為爬蟲系統(tǒng)負(fù)責(zé)下載頁面及解析頁面結(jié)構(gòu)化字段的模塊。

      進(jìn)一步,所述附件處理模塊為爬蟲系統(tǒng)負(fù)責(zé)下載頁面的附件并存儲(chǔ)的模塊。

      進(jìn)一步,圖片處理模塊為爬蟲系統(tǒng)負(fù)責(zé)下載圖片、上傳圖片至cdn、替換原網(wǎng)頁img標(biāo)簽的模塊。

      進(jìn)一步,監(jiān)控模塊為爬蟲系統(tǒng)負(fù)責(zé)監(jiān)控各個(gè)需要爬取的站點(diǎn)日爬取狀態(tài)的模塊,同時(shí)它還負(fù)責(zé)監(jiān)控隊(duì)列服務(wù)的隊(duì)長(zhǎng),防止系統(tǒng)負(fù)載過重而帶來的抓取不及時(shí)等問題。

      進(jìn)一步,配置平臺(tái)模塊為爬蟲系統(tǒng)的web控制臺(tái),負(fù)責(zé)配置各個(gè)需要抓取站點(diǎn)的調(diào)度規(guī)則、結(jié)構(gòu)化字段樣式,同時(shí)它還以圖表的形式展示監(jiān)控模塊統(tǒng)計(jì)的監(jiān)控?cái)?shù)據(jù)。

      進(jìn)一步,http代理模塊為爬蟲系統(tǒng)提供應(yīng)對(duì)一些站點(diǎn)的反爬蟲功能;通過對(duì)幾十上百個(gè)動(dòng)態(tài)ip進(jìn)行http代理,使得站點(diǎn)針對(duì)某些ip實(shí)行封禁的反爬蟲策略失效。

      由于采用上述方案,本發(fā)明的有益效果是:

      (1)系統(tǒng)穩(wěn)定性、可靠性強(qiáng)。本爬蟲系統(tǒng)中的所有模塊均可采用多點(diǎn)部署,并且對(duì)系統(tǒng)資源使用最多的模塊“抓取及頁面解析模塊”是“無狀態(tài)的”,一個(gè)或多個(gè)模塊掛掉不影響系統(tǒng)整體的運(yùn)行;

      (2)伸縮、擴(kuò)展性強(qiáng)。本爬蟲系統(tǒng)可以根據(jù)需要爬取的資源數(shù)量,動(dòng)態(tài)的增加或減少相應(yīng)模塊部署的數(shù)量。這里的“資源”可以是站點(diǎn)數(shù)量、頁面數(shù)量,也可以是附件下載量,所需處理的頁面圖片流量,伸縮的“粒度”不可謂不精細(xì);

      (3)可控性強(qiáng)。本爬蟲系統(tǒng),可以通過配置平臺(tái)模塊來控制不同站點(diǎn)的抓取頻率、抓取的結(jié)構(gòu)化字段,對(duì)企業(yè)積累自己的資訊數(shù)據(jù)提供及時(shí)、個(gè)性化的強(qiáng)力保證。

      附圖說明

      圖1是本發(fā)明的系統(tǒng)架構(gòu)圖。

      圖2是本發(fā)明的系統(tǒng)調(diào)度流程圖。

      圖3是本發(fā)明的配置存儲(chǔ)結(jié)構(gòu)er圖。

      圖4是本發(fā)明的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)er圖。

      具體實(shí)施方式

      下面結(jié)合附圖對(duì)本發(fā)明的較佳實(shí)例進(jìn)行詳細(xì)闡述,以使本發(fā)明的優(yōu)點(diǎn)和特征更易于被本領(lǐng)域技術(shù)人員理解,從而對(duì)本發(fā)明的保護(hù)范圍做出更為清楚明確的界定。

      圖1為本發(fā)明的基礎(chǔ)架構(gòu)圖:

      模塊scheduler為調(diào)度模塊,負(fù)責(zé)根據(jù)需要抓取的站點(diǎn)的重要程度不同來合理地確定調(diào)度頻率,和分配抓取資源;

      模塊crawler為抓取與頁面解析模塊,主要?來下載??以及抽取鏈接或者結(jié)構(gòu)化字段,?狀態(tài),可同時(shí)啟?多個(gè);

      模塊attacher為附件抓取模塊,主要?來抓取?頁頁?可能存在的附件,?狀態(tài),可同時(shí)啟?多個(gè);

      模塊imager為圖?抓取模塊,主要?來抓取?頁頁?可能存在的圖?,上傳cdn后替換原?站的圖?地址到抓取的??數(shù)據(jù)中,?狀態(tài),可同時(shí)啟?多個(gè);

      模塊queue_server通過binlog?式實(shí)現(xiàn)的主從同步隊(duì)列服務(wù)模塊,總共包含兩種隊(duì)列,“總隊(duì)列”和“待調(diào)度站點(diǎn)隊(duì)列”;

      模塊monitor為抓取監(jiān)控模塊,實(shí)時(shí)監(jiān)控各站點(diǎn)的抓取情況,提供抓取異常報(bào)警機(jī)制;

      模塊web_config_server為爬?系統(tǒng)站點(diǎn)配置控制臺(tái)模塊,?來可視化編輯各爬取站點(diǎn)的配置;

      數(shù)據(jù)庫config_mysql:各站點(diǎn)配置信息存放的mysql數(shù)據(jù)庫,配置信息包括了各站點(diǎn)的權(quán)重,以及最終落地?cái)?shù)據(jù)庫的結(jié)構(gòu)化字段的抓取特征(cssselector,regex);

      數(shù)據(jù)庫storage_mysql為抓取數(shù)據(jù)最終落地的mysql數(shù)據(jù)庫;

      模塊http_proxy為?來應(yīng)對(duì)擁有“反爬?”機(jī)制?站的http代理模塊,它可以動(dòng)態(tài)分配不同ip供有下載需求的服務(wù)進(jìn)?http代理下載;

      模塊urlinfo_dcache為?來保存鏈接爬取狀態(tài)的key-value形式的nosql數(shù)據(jù)庫,爬?系統(tǒng)主要使?它來濾重以及跟蹤鏈接爬取得狀態(tài);

      模塊uniid_server為成全局唯?的id號(hào)的服務(wù),供多個(gè)crawler調(diào)?,保證落地?cái)?shù)據(jù)id的唯?性。

      圖2為本發(fā)明的系統(tǒng)調(diào)度流程圖,結(jié)合圖1所示,對(duì)步驟進(jìn)行詳細(xì)描述:

      流程1-1為調(diào)度模塊scheduler將種子鏈接放入“總隊(duì)列”中;

      流程2為抓取與頁面解析模塊將要下載和進(jìn)行解析的連接從“總隊(duì)列”中取出;

      流程3-1為抓取與頁面解析模塊如果處理鏈接是詳情頁鏈接,則直接把解析出來的結(jié)構(gòu)化字段信息存入結(jié)果庫;

      流程3-2為抓取與頁面解析模塊如果處理的鏈接為列表頁,則把解析出來的下一級(jí)列表頁或者詳情頁放入相應(yīng)站點(diǎn)對(duì)應(yīng)的“待抓取隊(duì)列”中;

      流程4為調(diào)度模塊根據(jù)各個(gè)站點(diǎn)的抓取頻率和權(quán)重來適宜地從各個(gè)“待抓取隊(duì)列”中獲取適宜數(shù)量的待抓取鏈接,然后通過流程1-2,將這些鏈接放入總隊(duì)列中。

      圖3為配置存儲(chǔ)結(jié)構(gòu)er圖。下面對(duì)具體的er圖實(shí)體進(jìn)行說明:

      t_crawl_config為基本配置表,對(duì)應(yīng)為某個(gè)網(wǎng)站額某一類頁面,例如:“新浪博客新聞列表頁”或者“東方財(cái)富國(guó)際新聞詳情頁”;

      t_crawl_detail_pattern為詳情頁模板配置表,t_crawl_config和t_crawl_detail_pattern為1對(duì)多的關(guān)系,可以理解為某一類詳情頁的頁面可能有多種版面,所以需要抽取結(jié)構(gòu)化字段的特征值也會(huì)有所不同;

      t_crawl_list_template為列表頁模板配置表,它和t_crawl_detail_template與t_crawl_config的關(guān)系有些類似,只是列表頁和詳情頁關(guān)注的結(jié)構(gòu)化字段會(huì)有所不同,因而會(huì)有差別;

      以上各表各字段的含義基本可以做到“見名知意”。

      圖4為本發(fā)明的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)er圖。結(jié)合圖4所示,對(duì)對(duì)具體的er圖實(shí)體進(jìn)行說明:

      t_temp_storage_***為資訊存儲(chǔ)的主表,存儲(chǔ)了爬取解析到的資訊詳情結(jié)構(gòu)化信息,例如:標(biāo)題,作者,資訊內(nèi)容等;

      t_temp_attach_***為資訊附件信息表,存儲(chǔ)了爬取到的資訊詳情頁所帶的附件;

      以上各表各字段的含義基本可以做到“見名知意”;

      表2大致列出了表t_temp_storage_***和表t_temp_attach_***的字段含義。

      以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所做的等效結(jié)構(gòu)或等效流程變化,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。

      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1