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

垂直搜索引擎爬蟲系統的設計

2010-04-21 05:18:24長江大學計算機科學學院湖北荊州434023
長江大學學報(自科版) 2010年7期
關鍵詞:搜索引擎數據庫用戶

李 敏,趙 君 (長江大學計算機科學學院,湖北荊州434023)

在某些專業領域,如房地產、電子商務領域等,傳統搜索引擎已經無法滿足用戶的需求,為解決該問題,研究者提出垂直搜索引擎的設計構想。垂直搜索是針對某一行業的專業搜索引擎方式,其對互聯網海量信息中的某類專門信息的搜集和整合。爬蟲系統負責獲取互聯網中的海量數據,是垂直搜索引擎的核心,對整個引擎的運行效率有著重大影響。為此,筆者就如何設計高效率的垂直搜索引擎爬蟲系統進行了詳細探討。

1 垂直搜索引擎的工作模式

垂直搜索引擎首先委派爬蟲系統到目的網站下載相應信息,并將這些信息存入網頁庫,然后由索引模塊對網頁庫進行索引結構化處理,形成相應的索引文件 (索引庫)[1]。當用戶在網頁終端查詢信息時,系統會檢索索引文件,并將最終結果呈現給用戶,其工作模式如圖1所示。

圖1 垂直搜索引擎的工作模式圖

2 爬蟲系統的運行流程

因為爬蟲系統的運行和管理是整個系統的核心,所以,對抓取龐大數據的爬蟲系統而言,設計一個科學的運行流程至關重要,因為該流程直接影響著整個搜索引擎的工作效率。在爬蟲系統的運行過程當中,要充分考慮共享資源的互斥訪問和運行效率之間的矛盾,應盡量減少爬蟲在訪問隊列中的等待時間,并適當地運用緩沖區 (如隊列緩沖區或棧緩沖區)[2]。根據效率優先的設計原則,筆者所設計的該爬蟲系統的運行流程圖如圖2所示。

圖2 爬蟲系統運行流程圖

3 爬蟲系統的主要業務邏輯

爬蟲系統的主要業務邏輯包括爬蟲運行過程當中的配置參數及其數據結構,筆者僅就配置參數的相關內容加以闡述。

爬蟲運行過程當中的配置參數包括授權參數、頻道配置參數、數據庫配置參數、任務配置參數和爬蟲抓取參數[2]。其中授權參數包括頻道數量、單個頻道數據量上限、總數據量上限、頻道內任務數上限、工作線程數上限、深度上限、是否啟用抓圖功能、是否啟用視頻批量抓取功能、是否啟用任務調度功能。

為了用戶操作方便,一般將數據庫配置參數集成到頻道配置參數中。因此,頻道配置參數包括頻道數量、頻道名、頻道字段屬性 (字段名、字段是否為空)、頻道數據庫連接配置、數據表配置和任務基本信息配置。頻道數據庫連接配置中,根據目前的業務需要,數據庫類型暫時設置為 SqlServer、MySql和Oracle,并預留好接口,以便隨時增加數據庫類型。用戶在此設置服務器地址、用戶名、密碼和數據庫。在數據表配置里,用戶可以進行如下操作:①定義多個信息儲存表和每個表的最大記錄數,以分散單個表的訪問負荷;②設定每個字段的字段名和長度,根據其需要設置去重字段和增加從表;③根據預先設置的字段定義字段的名稱和長度 (為保證容錯性,字段的類型均為字符串型),對某個大容量字段設定從表 (如視頻采集中的URL地址)。此外,任務基本信息配置包括任務的ID和任務名,用于樹形菜單的顯示。

任務配置參數包括任務基本屬性、路徑配置、抓取規則配置和任務調度配置。軟件啟動后,將讀取頻道配置信息和任務配置信息。任務基本屬性選項卡中可以配置任務名稱、所屬頻道、爬蟲抓取延遲[3](為避開大網站反抓取機制,需要設置延遲)、工作線程數、爬行深度 (入口頁面的深度為1)、有效數據抓取深度[3](為提高爬蟲抓取效率,可以設定目標數據所在頁面的深度,以避開無效頁面的干擾)。爬蟲抓取延遲有3項選擇:沒有延時、固定延時和隨機延時,用戶可以根據實際情況選擇。在路徑配置和抓取規則配置中,將動態路徑規則、靜態路徑規則和固定字段值等功能放在同一個窗口里,以減少操作步驟,從而增加操作友好性。同時增加數據抽取測試頁面,讓用戶可以實時查看配置的正確性。爬蟲系統還可對抓取后的數據進行分析和處理,即添加數據分析功能,用戶能夠根據實際需要對每個字段對應的抽取值進行替換、篩選和補充。任務調度配置的內容包括用戶可以設置是否啟用任務調度以及調度起始時間、調度終止時間。如果起始時間小于當前時間,則當前時間為起始時間;如果終止時間小于當前時間,則調度無效,此外,還可以設置調度頻率。

爬蟲抓取參數為非可視化技術內核,是爬蟲抓取功能的實現部分,將根據各塊配置進行數據抓取。爬蟲抓取參數包括主控制臺和分析爬蟲。該模塊可實現如下功能:①主控制臺線程負責抓取全站URL,并根據用戶的設置過濾掉無效的和重復的URL,同時控制分析線程的運行狀態。根據用戶的配置,將符合要求的URL記錄到文件或數據庫中,已記錄者不再記錄。當所有URL讀取完成,自動按用戶定義的規則處理還沒有內容抽取的URL。②根據用戶配置可以采集JavaScript中的網址。③采集需要登錄后才能查看的信息。④入口網址規則中可設定多個變化參數,如Test.aspx?param1=a¶m2=b,其中參數值a和b都可以設為動態參數;⑤用戶可以使用可視化正則規則生成器 (動態路徑生成器)。⑥通過加入代理 (自定義代理,采集過程中可自動定時切換成代理模式)等功能突破網站防采集機制,代理的配置放在入口URL中。⑦設定網址讀取上限時間,如超過5s讀取不成功的網址,自動丟棄該網址。

4 爬蟲系統用到的主要設計模式

在該系統設計中,使用的模式有單件模式、觀察者模式、工廠模式和抽象工廠模式。在上述模式中,觀察者模式最為常用,其目的是降低各個對象之間的耦合度,使各個組件更利于維護。觀察者模式包括觀察者接口IObserver、被觀察主體接口IObservable、被觀察主體抽象類SubjectBase,其模型圖分別見圖3和圖4。凡是需要拋出事件的對象 (即被觀察的對象)均繼承IObservable接口或SubjectBase抽象類;凡是根據外部事件更新的對象 (即觀察者)均繼承IObserver接口,并實現Update方法,這樣就形成了一種松散耦合的方式,降低了觀察者對被觀察對象的依賴。

圖3 觀察者接口的類模型圖

5 爬蟲系統的項目信息及其關系圖

該設計模塊 (解決方案)包含7個子項目,從低層到高層分別是 DevHelper、Common、Kernel、DataProvider、Components、 Configuration(Controls)和 App。其中,DevHelper為第三方開源工具項目,包含眾多功能強大的第三方工具源代碼。

Common為通用項目,包含各種通用功能,各種通用模式均定義在這個項目中。該項目中還包括線程管理器接口IThreadManager,任務狀態枚舉 TaskStateEnum,通用參數類CommontArgs(解決方案中被觀察對象拋出的數據均為CommontArgs的對象),線程管理器抽象工廠類 AbsThreadManagerFactory(用以制造線程管理器對象),同步隊列類SyncQueue,同步字典類SyncDictionary,運行時錯誤處理委托RuntimeErrorEventHandler(用以定義運行時錯誤處理事件,是一種特殊的觀察者模式,和普通觀察者模式有所區別),通用事件處理委托CommonEventHandler(用以定義普通事件)。可視化XPath生成器模塊也在該項目中定義和實現。

圖4 被觀察對象的類模型圖

Kernel為爬蟲系統的業務核心項目,所有的接口和核心業務類,包括配置文件的數據結構、數據讀取和保存函數的實現,此外,還包括配置類ConfigData的定義、多線程中線程池管理器CrawlerThreadManagerPool、多線程管理器CrawlerThreadManager的實現、線程運行類CrawlerWork的定義、頁面信息類PageInfo、頁面信息管理器類PageInfoManager和運行時信息處理類 RuntimeSaveInfo。爬蟲運行時RuntimeSaveInfo類只有一個對象,爬蟲每解析一條合格數據,都要通知該對象,以記錄運行時的信息。

DataProvider為數據訪問模塊,其功能是將采集到的數據寫入到數據庫中 (包括數據處理接口IDataProvider的實現);Components為與運行時有關的通用功能模塊;Configuration為控件模塊,所有與配置相關的用戶控件均定義在該項目中;App為運行項目。7個項目的邏輯依賴關系如圖5所示。

圖5 項目邏輯依賴關系圖

6 結 語

從垂直搜索引擎的工作模式入手,根據搜索效率優先和功能模塊之間高內聚低耦合的原則,對如何設計高效率的爬蟲系統的進行了詳細探討,并論述了該方案的業務邏輯和主要設計模式,進而在此基礎上構建了爬蟲系統項目邏輯依賴關系圖。經測試,在網絡不擁堵的情況下,單日24h可采集并分析40萬條數據,因而該系統具有非常好的運行效率。此外,該設計方案還具有良好的可維護性和伸縮性,為今后進一步開展再編程和擴展的研究工作提供了方便。

[1]胡燕.基于Web信息抽取的專業知識獲取方法研究[D].武漢:武漢理工大學,2007.

[2]楊堅爭,李朝平.垂直搜索引擎及其應用 [J].遙感信息,2005,(10):23~25.

[3]呂林濤,陳麗萍,周紅芳.面向垂直搜索引擎的主題提取算法[J].計算機工程,2009,35(15):24~26.

猜你喜歡
搜索引擎數據庫用戶
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
網絡搜索引擎亟待規范
中國衛生(2015年12期)2015-11-10 05:13:38
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
基于Nutch的醫療搜索引擎的研究與開發
主站蜘蛛池模板: 91香蕉视频下载网站| 一个色综合久久| 嫩草国产在线| 美女免费黄网站| 538精品在线观看| 中文字幕乱码中文乱码51精品| 国产乱人免费视频| 伊人欧美在线| 久久久久久久久久国产精品| 欧美人与牲动交a欧美精品| 中文字幕在线看视频一区二区三区| 亚洲欧洲天堂色AV| 久久久久免费看成人影片 | 高潮毛片无遮挡高清视频播放| 九色视频线上播放| 特级aaaaaaaaa毛片免费视频 | 免费xxxxx在线观看网站| 在线观看国产精品第一区免费| a天堂视频| 在线日本国产成人免费的| 一级毛片在线播放| 亚洲午夜国产精品无卡| 久久精品国产在热久久2019 | 91综合色区亚洲熟妇p| 永久免费av网站可以直接看的 | 亚洲AV无码精品无码久久蜜桃| 亚洲精品第一页不卡| 欧美国产日韩在线观看| 欧美日本在线播放| 亚洲天堂视频在线免费观看| 亚洲成人黄色在线| 伊人中文网| 老司机精品久久| 午夜视频www| 人妖无码第一页| 亚洲熟女偷拍| 97国产精品视频自在拍| 久99久热只有精品国产15| 日韩人妻少妇一区二区| 美女免费精品高清毛片在线视| 青青草91视频| 国产麻豆永久视频| 日本免费一级视频| 欧美精品1区| 亚洲精品无码抽插日韩| 久久久久无码精品| 亚洲人成网站观看在线观看| 99在线视频免费| 国产一级毛片yw| 99在线观看精品视频| 欧美啪啪网| 波多野结衣中文字幕久久| 亚洲av无码片一区二区三区| 亚洲全网成人资源在线观看| 亚洲综合色区在线播放2019| 一本一道波多野结衣一区二区 | 欧美精品亚洲精品日韩专区| 久久中文字幕av不卡一区二区| 黄色免费在线网址| 九九久久99精品| 亚洲色图欧美| 免费看av在线网站网址| 国产精品美乳| 久久99国产乱子伦精品免| 色婷婷在线影院| 亚洲日韩在线满18点击进入| 亚洲经典在线中文字幕| 国产精品永久在线| 午夜视频www| 国产精品区网红主播在线观看| 国产高清不卡| 伊人久久久久久久久久| 国产原创第一页在线观看| 亚洲欧美成人综合| 国产精品网址你懂的| 亚洲国产中文在线二区三区免| 亚洲天堂视频在线观看免费| 亚洲资源站av无码网址| 欧美激情视频一区二区三区免费| 久久青青草原亚洲av无码| 色吊丝av中文字幕| 国产免费羞羞视频|