999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

網頁監控分布式爬蟲

2015-09-18 01:52:15方宇浩倪勝巧四川大學計算機學院成都610065
現代計算機 2015年11期
關鍵詞:數據庫

方宇浩,倪勝巧(四川大學計算機學院,成都610065)

網頁監控分布式爬蟲

方宇浩,倪勝巧
(四川大學計算機學院,成都610065)

互聯網的飛速發展,改變人們獲取信息的方式,互聯網漸漸取代傳統媒體,現在每天都有海量的信息在互聯網上更新著,如今世界已經進入到以數據為中心的大數據時代。提出一種監控這些數據的分布式爬蟲技術,以及一種基于網頁結構的提取網頁更新內容的算法。

爬蟲;分布式系統;消息隊列

0 引言

隨著互聯網的發展,從互聯網獲取消息漸漸取代了傳統媒體,如電視、報紙等。但是互聯網的爆炸式增長導致消息也是爆炸式地增長,各種網站每天更新著海量的信息。要采集這些海量的信息,依賴計算機單機處理能力的集中式網絡爬蟲無法滿足快速獲取大量資源的需求[1],分布式網絡爬蟲有良好的擴展性,可分布于不同地點,能滿足人們對信息采集的實際需求[2]。

1 系統架構

系統結構見圖1,該分布式監控系統使用一個消息隊列將各部分聯系起來,很好的解耦合。初始化模塊將任務寫入job_queue中,各個爬蟲客戶端從job_queue中獲取任務,并采集信息,將采集好的信息寫入task_queue,最后由控制模塊將task_queue的數據處理后寫入到數據庫。并在各個模塊配置supervisor監控各個模塊的進程,如果出現異常進程結束則重啟這個進程。

1.1消息隊列

消息隊列是一種進程間通信或同一進程的不同線程間的通信方式,軟件的隊列用來處理一系列的輸入,通常是來自使用者。消息隊列提供了異步的通信協議,每一個隊列中的記錄包含詳細說明的資料,包含發生的時間、輸入裝置的種類,以及特定的輸入參數,消息的發送者和接收者不需要同時與消息隊列互交[3]。消息會保存在隊列中,直到接收者取回它。

分布式監控系統使用消息隊列進行任務的分發和收集,job_queue為爬蟲客戶端的任務隊列,task_queue為爬蟲端完成任務后寫入數據的隊列,控制端從這里獲取數據并分析數據最后寫入數據庫[4]。

圖1 

1.2爬蟲客戶端

從消息隊列的job_queue獲取任務,見圖2,任務為json格式{“baseUrl”:http://xxx.com”,“id”:123}。爬蟲端獲取任務后執行當前任務,從Web獲取baseUrl頁面的HTML源代碼,然后解析HTML源代碼提取出頁面中的所有a標簽對應的text和url屬性。并按json格式{“baseUrl”:http://xxx.com”,”id”:123,”context”:[ {“url”:”xxx”,”text”:”yyy”}…]}寫入到task_queue。寫入task_queu之后向job_queue發送ack表明這個任務已完成,如果沒有收到ack,job_queue會在一段時間后將這個任務重新發送給爬蟲客戶端。在成功完成當前任務后爬蟲客戶端繼續從job_queue獲取任務。

圖2 

1.3控制模塊

控制模塊的初始化模塊定時從數據庫讀取所有需要監控的網頁的id和url然后寫入到job_queue中,保證每隔一定時間爬蟲客戶端就會去爬取相關信息。控制模塊的處理模塊會一直讀取task_queue中的數據,如果有新數據就讀出,然后把url做短鏈接處理,將url作為key在key-value的數據庫中查找去重。如果這個url是新的,那么這個數據也是剛更新的,將其寫入到數據庫中。

1.4監控模塊

在生產環境中會遇到各種奇怪的數據或者傳輸錯誤導致各個模塊因此而產生異常,該模塊可能沒有考慮到所有的異常,導致該模塊掛掉。該系統結構的特殊性,可以直接重啟任何模塊而不影響最后的結果,所以可以直接用一個監控模塊監控各個已經啟動的進程,如果該進程異常退出就直接重啟這個進程。

2 關鍵技術

2.1提取網頁更新內容算法

網頁更新內容,該系統主要關注各大門戶網站以及各單位網站,監控其首頁,當有更新的時候需要提取出更新內容以及相關鏈接。整個網頁可以看作一個HTML DOM樹,樹的節點是每一個HTML標簽,如〈head>、〈body>、〈a>等,基本所有的網站的更新內容都出現在〈a>標簽中,內容為〈a>標簽的text屬性,鏈接為〈a>標簽的href屬性。

第一步就是對網頁HTML的解析,生成HTML DOM樹,對于一些常見的HTML標簽不閉合的錯誤要進行相應的處理。然后用廣度優先搜索方法遍歷HTML DOM樹,找出所有的〈a>標簽將其放入到一個列表中,然后遍歷該列表提取出所有〈a>標簽的text和href屬性。使用短鏈接算法將href屬性里面的url進行處理[5],該系統使用的短鏈接算法為62進制算法,每位由[a-z,A-z,0-9]62個字母組成,長度為6位,總共可以表示626=56800235584種組合。使用短鏈接算法的目的主要是為了加速key-value數據庫的查找,因為一般url都比較長,而使用短鏈接算法處理過后只有6位,數據庫在查找時不管基于什么實現都要基于key字符串的長度,該短鏈接處理減少了key字符串的長度,因此大大減少key的查找時間。

第二步是將上一步處理后的短鏈接作為key在key-value數據庫中去查找,判斷該短鏈接是否已經出現過,如果沒有則說明這個url是第一次出現在這個頁面上,也就是這條信息是新更新的[6],那么將這個key寫入數據庫,并標記這個〈a>標簽是新內容,然后將該標簽對應的text作為更新內容寫入到指定的數據庫[7]。

2.2系統容錯

該系統要做到的就是在無人監管的情況下可以正常長時間運行。該系統使用消息隊列將各個模塊解耦,各個模塊相互獨立。對于消息隊列來說要做到的就是數據持久化和數據重傳。持久化就是用于消息隊列服務宕機的時候保證重啟消息隊列數據還在,而數據重傳則用于某個爬蟲客戶端宕機時能夠將來其任務重新分配給其他爬蟲客戶端。持久化即將消息隊列按一定的格式寫入到硬盤或者數據庫,保證出錯后數據依然存在,可以從硬盤或者數據庫恢復。消息重傳要求各個從消息隊列獲取消息的客戶端在處理完之后必須向消息隊列返回一個消息,如果在一定時間內沒返回說明該客戶端宕機,該條消息應該被重新發送給其他客戶端重新處理。

對于各個模塊來說必須配有監控模塊,各個模塊都由監控模塊啟動,并記錄它們進程的PID,監控模塊定期檢查這些進程的PID是否存在,如果不存在說明進程異常退出,重啟該模塊,重啟并不會對結果有任何影響。

3 結語

本文給出了一種網頁監控分布式爬系統架構,以及一種基于網頁結構的網頁更新內容的提取算法。該架構具有很好的魯棒性,高效地運行于大部分系統,并且系統具有良好的擴展性,滿足對于信息采集的不同需求。

[1]Novak B.A Survey of Focused Web Crawling Algorithms[J],2004

[2]Brewington BE,Cybenko G.2000b.Keeping up with the Changing Web[J].Computer,2000:52~58

[3]Campos R,Rojas O,Marin M,et al.Distributed Ontology-Driven Focused Crawling[C].Parallel,Distributed and Network-Based Processing(PDP),2013 21st Euromicro International Conference on.IEEE,2013:108~115

[4]De Bra P,Houben G J,Kornatzky Y,et al.Information Retrieval in Distributed Hypertexts[C].RIAO,1994:481~493

[5]Pal A,Tomar D S,Shrivastava S C.Effective Focused Crawling Based on Content and Link Structure Analysis[J].arXiv Preprint arXiv: 0906.5034,2009

[6]Amitay E.Using Common Hypertext Links to Identify the Best Phrasal Description of Target Web Documents[C].Proceedings of the SIGIR,1998,98

[7]Diligenti M,Coetzee F,Lawrence S,et al.Focused Crawling Using Context Graphs[C].VLDB.2000:527~534

Distributed Web Monitoring Crawler

FANG Yu-hao,NI Sheng-qiao

(College of Computer Science,Sichuan University,Chengdu 610065)

Internet is under rapid development and changing the way of obtaining information in life vividly,it is also on the way to replace traditional media.Countless information are updated on the Internet every day,which means the whole world has in fact stepped into another era,the era of big data.Proposes a distributed system crawler to monitor the data and an algorithm to extract Web updated content based on Web structure.

Crawler;Distributed System;Message Queue

1007-1423(2015)11-0062-03

10.3969/j.issn.1007-1423.2015.11.012

方宇浩(1990-),男,四川都江堰人,碩士研究生,研究方向為機器智能

倪勝巧(1982-),男,浙江金華人,在讀博士,講師,研究方向為機器智能

2015-02-12

2015-03-18

猜你喜歡
數據庫
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
兩種新的非確定數據庫上的Top-K查詢
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
數據庫
財經(2015年3期)2015-06-09 17:41:31
數據庫
財經(2014年21期)2014-08-18 01:50:18
數據庫
財經(2014年6期)2014-03-12 08:28:19
數據庫
財經(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 99人妻碰碰碰久久久久禁片| 蜜臀AVWWW国产天堂| 久热中文字幕在线| 五月婷婷综合在线视频| 麻豆精品在线视频| 99性视频| 999在线免费视频| 中文字幕免费在线视频| 国产三级毛片| 国产真实乱了在线播放| 91福利在线看| 亚洲高清中文字幕| 欧美一级特黄aaaaaa在线看片| 99伊人精品| 亚洲人成网站色7799在线播放| 久久综合国产乱子免费| 欧美精品导航| 久久黄色影院| 国产香蕉一区二区在线网站| 四虎影视永久在线精品| 午夜日本永久乱码免费播放片| 亚洲成在线观看| 无码一区中文字幕| 成人av手机在线观看| 2020国产精品视频| 国产女人爽到高潮的免费视频| 国产视频自拍一区| 日本成人福利视频| 国产JIZzJIzz视频全部免费| 日韩在线视频网| 亚洲一区二区在线无码| 日本亚洲成高清一区二区三区| 久青草网站| 制服丝袜国产精品| 人人爽人人爽人人片| 欧美性猛交一区二区三区| 国产精品免费p区| 最新国产在线| 免费在线视频a| 精品欧美一区二区三区久久久| 国产精品高清国产三级囯产AV| 91成人在线观看视频| 欧美成人综合视频| 国产精品视频观看裸模| 1769国产精品视频免费观看| 免费毛片全部不收费的| 午夜性刺激在线观看免费| 国产高颜值露脸在线观看| 网友自拍视频精品区| 国产精品吹潮在线观看中文| 国产美女精品在线| 国产毛片高清一级国语| 制服丝袜 91视频| 日韩欧美91| 午夜无码一区二区三区在线app| 国产一区二区三区视频| 在线观看欧美国产| 午夜天堂视频| 亚洲—日韩aV在线| 九九热视频在线免费观看| 在线视频一区二区三区不卡| 国产69精品久久久久孕妇大杂乱| 激情综合图区| 日韩在线视频网站| 亚洲乱强伦| 伊人久久精品无码麻豆精品| 伊人久久大香线蕉影院| 日本欧美一二三区色视频| 欧美激情网址| 日本在线免费网站| 草逼视频国产| 欧美另类视频一区二区三区| 69综合网| 日韩无码视频播放| 日韩欧美国产成人| 亚洲免费成人网| 国产在线八区| 国产精品久久自在自2021| 在线观看91香蕉国产免费| 真实国产乱子伦高清| 国产人成午夜免费看| 热99精品视频|