亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        垂直搜索引擎爬蟲系統(tǒng)的設(shè)計

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

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

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

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

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

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

        2 爬蟲系統(tǒng)的運行流程

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

        圖2 爬蟲系統(tǒng)運行流程圖

        3 爬蟲系統(tǒng)的主要業(yè)務邏輯

        爬蟲系統(tǒng)的主要業(yè)務邏輯包括爬蟲運行過程當中的配置參數(shù)及其數(shù)據(jù)結(jié)構(gòu),筆者僅就配置參數(shù)的相關(guān)內(nèi)容加以闡述。

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

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

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

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

        4 爬蟲系統(tǒng)用到的主要設(shè)計模式

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

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

        5 爬蟲系統(tǒng)的項目信息及其關(guān)系圖

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

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

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

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

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

        圖5 項目邏輯依賴關(guān)系圖

        6 結(jié) 語

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

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

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

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

        猜你喜歡
        搜索引擎數(shù)據(jù)庫用戶
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        網(wǎng)絡(luò)搜索引擎亟待規(guī)范
        如何獲取一億海外用戶
        基于Nutch的醫(yī)療搜索引擎的研究與開發(fā)
        播放灌醉水嫩大学生国内精品| 国产日本精品一二三四区| 亚洲av综合av一区| 国产成人久久777777| 日韩在线观看网址| 网红尤物泛滥白浆正在播放| 亚洲av福利天堂一区二区三| 毛片大全真人在线| 亚洲男人的天堂精品一区二区 | 亚洲码无人客一区二区三区| 日韩精品久久中文字幕| 亚洲国色天香卡2卡3卡4| 99国产超薄丝袜足j在线观看| 一区二区久久精品66国产精品| 精品亚洲一区二区三区四区五 | 天天天天躁天天爱天天碰| 国产精品爽爽va在线观看网站| 日韩一区二区中文字幕| 欧美成人家庭影院| 精品亚洲成a人7777在线观看| 久久精品国产亚洲一区二区| 成人免费毛片立即播放| 国产精品国产三级国产av品爱网| 猫咪免费人成网站在线观看| 无码精品人妻一区二区三区98| 一区二区三区蜜桃av| 人妻丰满熟妇av无码区| 无国产精品白浆免费视| 日韩色久悠悠婷婷综合| 日本精品一区二区三区福利视频| 国产精品久久久久影院嫩草| 99精品免费视频| 午夜桃色视频在线观看| 色综合av综合无码综合网站| 国产nv精品你懂得| 国产av一区二区内射| 每日更新在线观看av| 亚洲国产美女精品久久久久| 国产亚洲av手机在线观看| 中文字幕本久久精品一区| 久久精品人人做人人综合|