李保玉
摘要:該文設計和實現(xiàn)的基于C#的網絡類垂直搜索引擎數(shù)據(jù)采集,采用高效的URL去重,避免了數(shù)據(jù)的重復。本文剖析了網絡垂直搜索引擎中數(shù)據(jù)采集的基本方法和運行機制,并通過程序設計現(xiàn)實了垂直搜索引擎數(shù)據(jù)的采集。
關鍵詞:垂直搜素引擎;數(shù)據(jù)采集;C#;正則提取一、背景與研究意義
(一)研究背景?;ヂ?lián)網發(fā)展十余年,在這十余年的市場培育,發(fā)展的方向始終跟隨者web用戶的腳步,用戶希望能有一種軟件能在一定區(qū)域上對信息的智能采集和加工,從而來提高工作效率,因此采集技術在不斷的更新,采集軟件也隨之備受歡迎。
(二)開發(fā)背景。如今的互聯(lián)網,遍及全球,發(fā)展迅猛,信息在不斷的更新,Internet信息庫變得十分龐大。Web信息都是以網頁的形式,通過瀏覽器被用戶查看。目前搜索引擎技術發(fā)達,Web用戶都會通過搜索引擎搜索關鍵詞來查找自己想要的信息,但查到的結果不盡人意,包含了很多不相關的頁面,還要自己認真查找,因此要直接查找自己想要的精確信息非常困難。
(三)研究意義。網絡上的信息非常豐富,數(shù)據(jù)類型多樣,不斷更新、不斷變化,如何迅速的、準確的獲取到自己需要的數(shù)據(jù),有價值的信息,變得越來越難。如何充分的利用網絡信息資源進行方便快速的檢索,從而引出搜索引擎技術,它們與網絡技術和信息技術一起,在發(fā)展和使用中逐步完善。企業(yè)及個人網站需要在百度上有個好的排名,就必須運用到SEO相關的技術,其中更新網站信息是最主要的,但這需要太多的時間與人力,該網絡類數(shù)據(jù)采集引擎就可以避免公司及個人的成本,并且可以提高工作效率。
二、系統(tǒng)調研與可行性分析
(一)現(xiàn)狀調研。隨著網絡的發(fā)展,網絡創(chuàng)業(yè)也成了現(xiàn)在的主流。但這些離開不了搜索引擎的作用,因為要有流量就得要排名,要有排名就得跟著各大搜索引擎的步法走,走偏了,就得受罰。不管做網站還是做推廣少不了信息的獲取,但是獲取具有相對性高的信息是比較費時間和人力的,因此采集引擎發(fā)揮了很大的作用并得到廣泛的應用。
(二)可行性分析?,F(xiàn)在大多數(shù)的信息的采集主要是為手工處理,很多重復操作,而且是容易找到許多不相關的信息,該網絡類垂直搜索引擎數(shù)據(jù)采集軟件的使用是否可以解決以上問題,就要對軟件進行可行性分析。一般軟件的可行性分析會對以下方面進行:(1)技術可行性:程序運行采集信息時采用的是多線程處理,使處理速度更快。(2)經濟可行性:在設計該軟件時不需要太多的成本,也不需要太多的人力投入,需要連接網絡。(3)運行上可行性:雖然本軟件使用的是多線程處理,消耗的相對比較大,但是現(xiàn)在一般的電腦都可以運行。(4)從社會需求上分析:更新信息本來是個工作量大的工作,該軟件就可以避免這個問題,可以降低工作強度,提高工作效率。
三、系統(tǒng)相關技術簡介
(一)垂直搜索引擎。隨著互聯(lián)網信息的日益發(fā)展、不斷龐大,精確獲取信息的難度越來越大,那么怎樣在大量的信息中找到自己想要的信息,成為了一個迫在眉睫的問題,需要新的技術、新的理念來解決這個棘手的問題,因此搜索引擎的出現(xiàn)成為了必然,同時也開始影響著我們的需求,影響著我們的生活。由于普通的、通用的搜索引擎有著查詢的信息量很大、但目標不夠準確、有許多重復的內容或根本無關緊要的內容,而且搜索出的信息深度不夠等缺點,所以為精確的搜索出需要的信息,滿足用戶的需求,從而誕生了垂直搜索引擎。
(二)搜索引擎爬蟲。搜索引擎爬蟲是一種按照一定網頁資源無關性、覆蓋率數(shù)據(jù)結構型、語義檢索等自動抓取網絡資源的程序,它的執(zhí)行過程和網絡爬行很相似。
現(xiàn)在的網絡信息都是以網頁的形式加載信息,如果這個網頁沒有被搜索引擎爬蟲收錄,這個網頁在互聯(lián)網上是很難找不到的,這只能通過連接直接打開,通過搜索引擎查找是不可能找到的。因為搜索引擎爬蟲采集時有URL去重功能,所以提供給用戶的都是一些很有價值的信息。
(三)數(shù)據(jù)采集。網絡基本上所有網站都分為三大模板:首頁模板、內容頁模板,列表頁模板、所以一個網站的列表頁、文章的HTML代碼的結構基本相同,這就便于去根據(jù)規(guī)律采集文章信息,采集網頁內容方式主要有兩種:智能提取和正則提取。
(四)站群。站群是目前比較掙錢的網賺項目之一,為了維護這些網站每天都得給網站發(fā)布一定數(shù)量的信息,如果一個網站發(fā)10篇,就得準備至少100篇文章,這樣的工作量不可能讓人工來操作,必須要有具備采集數(shù)據(jù)功能的軟件協(xié)助,這樣就可以大大提高工作效率。
四、系統(tǒng)總體設計分析
(一)系統(tǒng)需求分析。在龐大的Internet信息寶庫中,怎樣精確獲取信息的難度越來越大,用戶也迫切的需要一個簡便的檢索工具去得到自己想要的信息,因此搜索引擎的產生成為了必然。搜索引擎的數(shù)據(jù)采集模塊主要是對網絡上原創(chuàng)性的網頁信息采集下來保存在數(shù)據(jù)庫中。如果該網頁發(fā)生了更新,數(shù)據(jù)采集模塊會檢測到后下載并對本地的舊信息進行替換更新。因此通過剖析網絡垂直搜索引擎中數(shù)據(jù)采集的基本方法和運行機制,再通過軟件來現(xiàn)實數(shù)據(jù)采集,從而可以快速解決許多重復性的勞動問題。
(二)系統(tǒng)實現(xiàn)的目標。本系統(tǒng)主要實現(xiàn)的目標有以下幾個方面:(1)界面設計簡潔、美觀、直觀。(2)數(shù)據(jù)存儲準確、安全、可靠。(3)任務運行靈活。(4)系統(tǒng)操作性強、維護方便。
(三)系統(tǒng)功能模塊設計。(1)主程序模塊:加載數(shù)據(jù)庫里面的抓取任務信息,下面的小框中就會顯示任務運行時的抓取日志和運行進程的個數(shù)。(2)新建任務模塊:為程序的主要模塊,又分為四個小模塊:任務基本信息模塊、提取列表分頁模塊、提取文章地址模塊、提取文章內容模塊。(3)文章庫模塊:查看所有抓取的文章信息。(4)系統(tǒng)設置模塊:設置每個線程執(zhí)行的間隔時間。(5)聯(lián)系方式模塊:關于系統(tǒng)的簡介及我們的聯(lián)系方式。(6)任務控制模塊:控制選中任務運行、暫停、停止。(7)任務文章查看模塊:查看選中任務抓取的文章信息。(8)任務文章刪除模塊:刪除選中任務抓取的文章。(9)任務列表加載模塊:實現(xiàn)刷新、選定任務刪除、選定任務運行、選定任務暫停、選定任務停止、查看選定任務文章、導出。(10) 加載顯示任務運行日志模塊:顯示所有線程的運行狀態(tài)。
(四)系統(tǒng)功能結構圖。根據(jù)基于C#的網絡類垂直搜索引擎數(shù)據(jù)采集的實際需求,可以將網絡類數(shù)據(jù)采集引擎劃分為新建任務、文章庫、系統(tǒng)設置、關于我們、任務運行、任務暫停、任務停止、指定任務文章查看、指定任務文章刪除、任務加載列表、顯示任務運行狀態(tài)框、顯示線程數(shù)量12個部分。
(五)系統(tǒng)流程圖。基于C#的網絡類數(shù)據(jù)采集引擎的流程是用戶先要新建自己的抓取任務,依次要填寫任務名稱、采集方式、網站編碼、入口地址、列表URL提取正則、網頁URL提取正則、內容提取方式、內容提取正則;然后保存任務,刷新加載任務列表,會顯示新建的任務,運行新建任務,把抓取到的信息保存在數(shù)據(jù)庫中,同時顯示任務運行狀態(tài)框會顯示抓取信息情況。
結語:雖然該數(shù)據(jù)采集軟件的完成了,但是凡事總是不夠完美,該軟件還有一些不足。因為該軟件要頻繁地訪問同一個服務器上的網頁,服務器可能會對軟件所在的電腦進行封鎖IP,禁止在訪問,軟件將無法再抓取,因此該軟件最大的不足就是沒有實現(xiàn)切換代理IP訪問網頁。另外的不足就是沒有實現(xiàn)對應發(fā)布功能,這些功能方面應該做進一個的完善。
參考文獻:
[1]呂鐵強, 于滿泉, 孟慶發(fā). 基于網頁分塊的個性化信息采集的研究與設計[J]. 微電子學與計算機, 2012