網站:JavaEye 作者:yuping322 發表時間: 2007-08-24 20:26 此文章來自于 http://www.JavaEye.com
聲明:本文系JavaEye網站原創文章,未經JavaEye網站或者作者本人書面許可,任何其他網站嚴禁擅自發表本文,否則必將追究法律責任!
原文鏈接: http://yuping.javaeye.com/blog/116248

信息采集系統的技術實現


        信息采集系統指的是按標準格式采集指定網絡信息,同搜索引擎的區別在于其采集的目的性更強,采集源范圍也比較小。這里簡單介紹一下信息采集系統實現上的幾個關鍵問題:


1) 采集網頁數據

        VC,Java,VB的網絡通訊功能都足夠實現信息采集,VC中的Get/Post方式可采集網頁信息,也可以直接用socket方式采集,但一般用前一種模式,另外為了提高采集效率都采用多線程技術,在網上的一些Spider程序都是多線程的,可以借鑒.


2) 如何按關鍵字來信息

        信息采集的一大特點是按多個關鍵字將信息拆分出來,例如供求信息中的商機標題、聯系人、電話、Email、內容等,實現時需要事先定義好這些關鍵字,然后在網頁中搜索,將夾在兩個關鍵字當中的信息采集出來,另外還要注意,網頁中的許多關鍵字是包含空格的,空格數量也不能確定,例如"郵   件",這就要求在查找關鍵字時要把關鍵字按單個漢字拆開來匹配,遇到中間的空格要跳過去.這一步實現了,信息就會變的非常有規則,也就可以導入本地庫了.


3) 網頁中的鏈結獲取算法

        了解HTML的應該清楚,網頁中的鏈結都是通過的標簽定義的,但也會分很多情況,例如:  < a href = "...">  這是常見的鏈結格式,但要注意采集出來的鏈結可能是完整的http://...,也可能是相對路徑,要分別處理;  < a href = ''> 用單引號分隔的,所以用算法獲取鏈結的時候要根據雙引號和單引號兩種標記來分隔;< a href = .. onclick = javascript:view('..','')> 通過javascript的函數處理鏈結,算法上就麻煩了許多。


4) 無效數據的過濾

        即使通過關鍵字的方式摒棄了許多廣告信息,但在關鍵字信息中也會有不少無效數據,包括一些信息開頭的空格


5) 特定數據的獲取算法

        Email,電話等數據符合一定的規范,一般可以用一些算法提取出來,也可以用正則表達式技術來獲取,在網絡上有不少此類算法.在信息采集中,Email和電話等關鍵信息是比較分散的,需要用提取算法把這些信息提取出來放在正確的位置.這是非常有必要的,因為信息采集系統往往會有郵件群發的功能.


信息采集的整個流程可總結如下:


 a) 首先,獲取網頁的完整信息

 b) 用算法獲取網頁中的正文信息,即拋棄HTML的標簽文本

 c) 去除多余的空行

 d) 按定義好的關鍵字將信息分隔開

 e) 對信息進行無效數據過濾

 f) 信息入本地庫

 g) 獲取網頁中的鏈結,對該鏈結從a)步驟開始重復,但注意網頁中的許多鏈結是廣告或無效的,因此要事先定義好一些鏈結關鍵字,只有包含關鍵字的鏈結才處理




《 信息采集系統的技術實現 》 的評論也很精彩,歡迎您也添加評論。查看詳細 >>





JavaEye推薦
上海樂福狗信息技術有限公司:誠聘技術經理和開發工程師
免費下載IBM社區版軟件--它基于開放的標準,支持廣泛的開發類型,讓您的開發高效自主!
京滬穗蓉四地免費注冊,SOA技術高手匯聚交鋒.
上海:優秀公司德比:高薪誠聘 資深Java工程師
廣州:優易公司:誠聘Java工程師,開發經理
上海:尤恩斯國際集團:誠聘開發工程師
北京:優秀公司NHNChina招聘:WEB開發,系統管理,JAVA開發, DBA



文章來源: http://yuping.javaeye.com/blog/116248