摘要:提出了一個基于.NET技術的網絡信息采集系統,介紹了系統的設計思想和工作原理,闡述了整個系統關鍵部分的實現過程。文章最后介紹了網絡信息采集系統在政府網站的應用,研究如何通過網絡信息采集系統為公眾和政府提供信息資源共享與服務。
關鍵詞:.NET技術;信息采集;系統設計;政府網站;輿情監測
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2009)15-3927-03
Internet Information Collecting System Development and Use Based on .NET Technology
CHEN Hai-lun, TAO Song
(Anhui Economic Information Center, Hefei 230000, China)
Abstract: The paper proposed an internet information collecting system which is developed based on the technology of .Net. The design idea and working theory were introduced and the realization of the system's key part is also expounded. In addition, the paper elaborated how the information collecting system works in government portal to let the public share information resources provided by the government.
Key words: .Net technology; information collecting; system design; government portal; public opinion monitoring
1 引言
網絡信息采集是一種全新的信息采集方式, 它自動將非結構化的信息從大量的網頁中抽取出來保存到結構化的數據庫。網絡信息采集與傳統信息采集方式比較,具有速度快、不受空間限制、成本相對較低等優勢與特點。隨著信息技術的發展和網絡的普及,網絡信息采集優勢越發突出,已廣泛應用于電子政務,行業門戶網站,競爭情報系統,輿情監測系統,網站內容系統,垂直搜索,科研等領域[1]。
2 系統架構
2.1 關鍵技術
基于微軟.NET框架,用C#語言開發,利用面向對象的方法,將系統復雜的處理分離出來,成為獨立的可重復利用的模塊[2]。配合強大的SQL Server 2000數據庫支持,將采集到的信息保存到結構化的數據庫。
2.2 B/S的系統模式
系統采用三層架構,形成一種瘦客戶模式的B/S模式,其中表示層用Asp.NET開發管理平臺,這是系統的用戶工作平臺。業務邏輯層是系統的核心,用C#開發數據采集類、采集調度管理類和數據存儲類[3]。第三層的數據層采用SQL Server 2000,它高效、安全,滿足系統的存儲和吞吐要求。系統體系結構如圖1所示。
3 系統模塊分析與設計
根據采集系統的需求分析和應用系統建設技術規范書,將系統分成兩個主要模塊:管理平臺模塊和采集模塊。下面具體分析一下幾個主要模塊的功能與設計方法。
3.1 管理平臺模塊
管理平臺是操縱管理采集模塊來采集數據的平臺,它要求憑用戶和密碼進入,可進行專題管理,將所采集的數據按類別存儲和編輯。進行任務管理,包括采集地址設置、采集頁面模版和采集時間的設定等。管理平臺模塊還擁有用戶管理、數據的備份和轉存功能。圖2為本模塊的功能層次圖。
3.2 采集模塊
采集模塊負責從Internet上采集數據,進行處理,存儲入庫。該模塊的采集調度功能調度采集任務,利用采集器采集數據,采集的數據經過內容提取、剔除和文本格式化處理后存儲。圖3為本模塊的功能層次圖。
4 系統的實現
根據系統的模塊分析和設計,完成了信息采集系統的開發。系統開發中采用Microsoft Visual Studio 8作為開發工具, Windows Server 2003的IIS 6.0作為Web服務, SQL Server 2000數據庫用于存儲管理。在本系統中,對數據采集模塊采用多線程設計,使得采集任務可以并發執行,以充分利用CPU的效率,提高采集系統的效率。
本系統核心功能是采集器和采集數據處理。下面是用C#編寫的采集器的一個核心函數,用來采集網頁的源代碼[4]。
public string getContent(string strUrl,string strEncoding)
{ string lsResult=\"\";
try
{ HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strUrl);
HttpWebResponse rep = (HttpWebResponse)req.GetResponse();
StreamReader sr = new StreamReader(rep.GetResponseStream(), Encoding.GetEncoding(strEncoding));
lsResult = sr.ReadToEnd();
sr.Close();
}
catch(Exception ex)
{lsResult = \"\"; }
return lsResult;
}
采集器通過以下函數自動獲取新聞列表,實現對一個網頁內所選區域所有鏈接網頁采集。
public DataTable GetAllUrl(string Str,DataSet dsUrlConfig)
{ DataTable dtUrls = new DataTable();
DataColumn dc = new DataColumn(\"SingleUrl\");
dtUrls.Columns.Add(dc);
while(Str != \"\")
{ string str1 = string.Empty;
str1 = Str;
string strTemp = string.Empty;
int RowNum = 0;
foreach (DataRow dr in dsUrlConfig.Tables[0].Rows)
{ str1 = OperateStrFunction(str1, dr[\"StartString\"].ToString(), dr[\"EndString\"].ToString(), dr[\"NewString\"].ToString(), int.Parse(dr[\"OparationId\"].ToString()), int.Parse(dr[\"IsContainHeader\"].ToString()), int.Parse(dr[\"IsContainTail\"].ToString()));
if (RowNum==0 dr[\"OparationId\"].ToString() == \"1\" str1.IndexOf(dr[\"StartString\"].ToString()) != -1 str1.IndexOf(dr[\"EndString\"].ToString()) != -1)
{
strTemp = str1;
}
RowNum++;
}
if (str1 != \"\" str1 != Str)
{ Str = Str.Replace(strTemp, \"\");
DataRow dr = dtUrls.NewRow();
dr[0] = str1;
dtUrls.Rows.Add(dr);
int count = dtUrls.Rows.Count;
}
else{
Str = \"\";}
return dtUrls;
}
其中OperateStrFunction函數負責對字符串的處理,包括字符串的截取、替換和刪除等操作。
5 網絡信息采集系統在政府網站中的應用
政府網站是各級人民政府及其部門在互聯網上發布政務信息、提供在線服務、與公眾互動交流的重要平臺。隨著《中華人民共和國政府信息公開條例》的正式施行和全國電子政務外網建設項目的啟動,以及政府網上業務應用的逐漸深入,政府網站已經越來越成為政府信息公開和承載電子政務應用的主要支撐和主要途徑。提高政府網站服務功能和應用水平是現階段網站建設的主要任務。
通過網絡信息采集系統的技術手段,提高政務信息資源的共享建設水平。網絡信息采集系統可以按照具體政府網站的應用要求,有選擇的采集政府部門公開的機構設置、人事動態、公告、政策文件、地方法規、新聞發布、重要會議、業務公開信息和工作動態等信息,形成政務信息資源庫。為各級政府及其部門有效整合下級部門的政務公開信息資源提供途徑。通過政務信息資源庫為各類用戶提供政務信息目錄服務、檢索服務、定制服務和共享數據接口服務。
通過網絡信息采集系統的技術手段,打造政府輿情監測系統。通過網絡信息采集系統實時采集互聯網媒體信息源,包括門戶網站、行業網站、公司網站、機構網站、論壇、博客等互聯網媒體,對這些信息源進行實時跟蹤監測,并對監測信息進行分析處理,自動下載存儲,可通過電子郵件、手機短信等方式提供給相關用戶。實現更快速的信息搜集、信息處理、信息研判、信息反饋,服務政府決策[5]。
6 結束語
該系統的設計和實現,立足于政府網站數據采集和加工應用的需要,它能大幅度減少網站的采編工作量,成倍地提高工作效率,有效提高信息資源開發和應用水平,有很高實用價值。
參考文獻:
[1] 南京航空航天大學圖書館組.網絡信息采集與應用[M]. 北京:清華大學出版社, 2005.
[2] 陳向東.C#面向對象程序設計案例教程[M]. 北京大學出版社,2009.
[3] Robinson S, Harvey B. Professional C# [M].2nd ed. Wrox Press, 2002.
[4] 微軟公司. System.Net命名空間[EB/OL]. http://msdn.microsoft.com/zh-cn/library/system.net(VS.80).aspx.
[5] 楊鎖柱.Goonie互聯網輿情研究與監管模式解析[EB/OL]. http://www.echinagov.com/gov/csfa/2008/11/13/52118.shtml.