基于Web的网站信息采集系统的设计与实现

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:rifcumtd111
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:互联网的迅速发展,使如何采集和利用Web信息越来越受关注。该文提出了基于Web的信息采集系统的设计方案,并利用.Net技术与数据库技术,实现了对特定网站信息的采集与处理。
  关键词:信息检索;正则表达式;ADO.NET
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)16-21263-02
  Design and Implementation of Information Collection System Based on Web
  ZHAO Xiao-feng
  (Department of Information Engineering,Wuxi Institute of Commerce,Wuxi 214153,China)
  Abstract: With the rapid development of Internet, collecting and exploiting Web information is extensively addressed. This paper aims at implementing the collection and processing of the particular website, using .Net technology and database technology on the ground of scheme of web information collection.
  Key words:information retrieval;regular expression;ADO.NET
  
  1 引言
  
  随着WWW的发展,搜索引擎所提供的搜索和导航服务已经成为互联网上非常重要的网络服务,它的特点是能够帮助我们很快找到所需的网站或资料。而某些情况下,我们浏览网站时关注的是几个特定网站上的一类信息与数据,需要综合这类信息进行数据挖掘,来进一步分析和使用;或者只是想从几个网站上采集特定的信息,并在进行分类和统一格式后,存入本地数据库,在自己网站上发布,从而提高信息及时性,减少工作量。
  本文讨论利用.Net技术、数据库技术,设计Web网站信息的采集系统,并以某人才网站招聘信息的采集为例,说明实现过程。
  
  2 信息采集系统的设计
  
  2.1 采集系统设计的思路
  首先,要采集指定网站的信息,必须了解信息的浏览方式,并记录相应的访问路径。大多数网站采用动态网页技术(ASP、PHP等)构建,通过参数传递来检索数据库,输出对应信息的。例如人才招聘网的通常以单位名称作为信息的起点链接,打开对应的网页后,获得单位具体招聘岗位链接,才能获得详细的招聘信息。
  第二,采集所获的信息必须存入本地数据库,需要对几个目标网站上的信息进行比较与分析,得到统一的数据模型,并设计相应的数据表,便于将来对不同网站采集来的信息统一进行结构化。
  第三,考虑到可能会对网站进行多次采集,要避免重复的信息存入自己的数据库内,同时重复处理已经存在的信息也会降低采集系统的工作效率。因此可以在记录每条信息的同时,记录其对应的URL或相关ID,便于验证链接是否已经访问过。
  2.2 相关的技术
  1)请求/响应模型
  Web 应用是基于HTTP协议的客户端/服务器请求响应机制的信息交换,当我们在浏览器输入一个网址,需要经过建立连接、发送请求、发送响应、关闭连接4个步骤,才能获得网页信息。
  在.Net框架的命名空间System.Net中提供了两个类WebRequest和WebResponse,分别用来发送客户端请求和获取服务器返回的响应。
  2)正则表达式
  正则表达式提供了功能强大、灵活而又高效的方法来处理文本。正则表达式的模式匹配可以快速地分析大量的文本以找到特定的字符模式;提取、编辑、替换或删除文本子字符串;或将提取的字符串添加到集合。
  在.Net的命名空间System.Text.RegularExpressions提供Regex类构建正则表达式,同时还提供了相应的方法完成对字符串的匹配和过滤。
  3)ADO.Net
  采集系统得到的数据最终都要存入本地数据库,在.NET框架中提供了数据库访问技术ADO.NET。它屏蔽了各类数据源之间的差异,以统一的接口进行访问,由一组访问各类数据源的类构成。为提高访问效率,还为SQL Server提供了专用类,SqlConnection、SqlCommand、SqlDataReader、Dataset、SqlDataAdapter等,完成对SQL Server数据库的访问与数据处理。
  2.3 算法描述
  要完成信息的采集,首先要能够在页面中过滤出我们所需要的链接起点,然后系统模拟人工点击流程来读取信息。
  1)根据访问路径创建一个C#自带的REGEX类的对象,该类是用来进行正则表达式的匹配文本类。
  2)通过WebRequest发送请求,WebResponse接取返回的响应,再通过StreamReader读取返回的响应,形成包含网页所有源码的字符串。
  3)对该字符串用正则表达式进行匹配,得到MatchCollection集合,存放了所有我们需要进一步读取的目标链接。
  4)遍历集合的成员,访问成员链接所指向的页面,由StreamReader读取信息后,使用正则表达式提取页面信息。如果该页是访问路径的终点,读取相应的信息后,结构化所有数据存入数据库;若只是获取下一级链接,则转1)。
  3 人才招聘信息采集系统的实现
  1)读取招聘单位列表信息
  打开web_url指定的网站页面,并通过StreamReader对象读取网页源代码存入字符串all_code中,便于正则表达式提取。
  HttpWebRequest all_codeRequest = (HttpWebRequest)WebRequest.Create(web_url);
  WebResponse all_codeResponse = all_codeRequest.GetResponse();
  StreamReader the_Reader = new StreamReader(all_codeResponse.GetResponseStream(), System.Text.Encoding.Default);
  string all_code = the_Reader.ReadToEnd();
  the_Reader.Close();
  2)提取招聘单位的超链列表
  创建表达式字符串p,用它创建正则表达式对象re,并使用re.Matches方法返回all_code字符串所有匹配的超链集合hy。
  string p = @". ";
  Regex re = new Regex(p, RegexOptions.IgnoreCase);
  MatchCollection hy = re.Matches(all_code);
  for (int i = 0; i < hy.Count; i )
  {
  ….//读取单位信息
  …//获得每个招聘单位发布的岗位链接集合gw
  for(int j=0;j  { …//使用正则表达式过滤,读取岗位招聘人数、有效时间、学历要求等
  …//信息存入本地数据库相关表中}
  }
  3)信息存入本地数据库
  为将信息存入本地数据库对应的表,在SQL Server中设计了一个存储过程InsertJobs,用来解决相应的数据插入问题。其中webid中存放ID是目标网站用于区分岗位的标识,InsertJobs根据其检查该岗位是否需要插入数据库,保证数据不重复。
  SqlCommand cmd = new SqlCommand("InsertJobs", con);
  cmd.CommandType = CommandType.StoredProcedure;
  try {
  cmd.Parameters.AddWithValue("@companyname", companyname);
  ……//招聘岗位信息
  cmd.Parameters.Add("@webid", SqlDbType.BigInt, 8); //记录岗位ID
  cmd.Parameters["@webid"].Value = Convert.ToInt64(jid);
  cmd.ExecuteNonQuery();
  }
  catch (Exception){continue;}
  
  4 结束语
  
  利用该设计方案,我们成功地对某人才网的信息进行了采集;其实,只需适当修改,就可用于采集其他特定网站的信息。由于针对特定的网站进行信息采集,并不需要像搜索爬虫一样对整个网站进行扫描,所以采集的速度比较快。要避免再次采集时对已采集信息的重复提取,可以在数据库中存放已扫描的链接,在2.3算法第4步读取超链内容前进行判断,则可以提高再次采集时的工作效率。
  
  参考文献:
  [1] 张帆,李琳娜,杨炳儒.基于Web的智能信息采集及处理系统设计与实现[J].计算机工程,2007,33(18).
  [2] 徐远超,刘江华,刘丽珍,等.基于Web的网络爬虫的设计与实现[J].微计算机信息,2007(21).
  [3] 吕铁强,于满泉,孟庆发.基于网页分块的个性化信息采集的研究与设计[J].微电子学与计算机,2005,22(10).
其他文献
水墨江南,春寒料峭。烟雨蒙蒙,我走在涟水岸边。倏尔,伴着清脆的鸣啼,由远而近,几个小墨点轻盈地穿过柳树林间,剪刀似的尾巴,轻轻掠过水面......  久违了,鸟儿!久违了,春天!  鸟儿是美的化身,是落入凡尘的精灵。一展翅,一抬头,带着大自然的仙气和韵味。韦应物的“独怜香草涧边生,上有黄鹂深树鸣”,杜甫的“两个黄鹂鸣翠柳,一行白鹭上青天”,刘禹锡的“旧时王谢堂前燕,飞入寻常百姓家”,黄庭坚的“春无
摘要:“红外小目标检测”技术是红外成像跟踪系统的核心技术,因此红外小目标的检测是当前军事领域的一项重要研究课题。目前红外小目标的检测技术的发展方向是研究一种运算量小、性能高、利于硬件实时实现的检测算法。  关键词:红外小目标检测;滤波;阈值;罗伯特(Robert)算子    Infrared small target detection technology Based on Robert ope
摘要:C语言是一门典型的结构化程序设计语言,很多高校将其定为编程入门语言。时常会听到有学生抱怨C语言难学,难懂,难用,在解决实际问题编制应用软件时往往无以下手,缺乏编程和调试的能力。如何更好地开展C语言课程的教学呢? 本文就C语言教学中存在的问题,进行了相关的教学研究,提出了相应的看法,以促进C语言教学。  关键词:教学方法;教学模式;思维训练;自学能力  中图分类号:G642文献标识码:A文章编
随着现代科学和信息技术的发展,网络媒体成为人们阅读、写作的新媒介。近年来,越来越多的汉语言文学在网络上通过新的媒介实现了进一步的传播和扩散。传统文学何去何从以及新时代背景下中国网络文学的发展成为人们不得不思考的问题。杭州师范大学中文系单小曦教授的《媒介与文学:媒介文艺学引论》一书从媒介传播的角度对中国现当代的文学艺术发展进行了研究,并结合现代网络传播媒介下文学艺术的传播情况,提出了独特的媒介文艺学
摘要:P2P蠕虫是利用P2P 机制进行传播的恶意代码。通过P2P节点的共享列表,蠕虫很容易获得攻击目标的信息,所以其爆发时传播速度很快,这种大量的快速传播导致的直接后果是网络阻塞。该文分析蠕虫在P2P 网络中的传播原理,在此基础上分析了蠕虫的防御措施。  关键词:蠕虫;P2P系统  中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2009)05-1066-02  Resear
摘要:Digital Rights Management(DRM)——数字版权管理,这个产业对于中国来说还是非常新的一个产业,特别是DRM技术在IPTV上面的应用目前还没有一个十分成熟的机制。本文首先对DRM进行了概述,介绍了目前IPTV DRM的背景,并根据IPTV DRM所特有的特点、风险,从而分析出IPTV DRM保证内容的安全的技术手段。针对当前国内IPTV的现状以及未来的发展,提出了IP
摘要:将MCU系统与无线射频芯片相结合可以实现对无线电表的控制和对电能数据的采集和传输。本文利用ADE7755作为电能计量芯片,并结合由MCU PIC18F4620和无线射频芯片CC2420组成的ZigBee无线传输网络,实现了基于ZigBee技术的无线抄表系统。  关键词:ADE7755;CC2420;ZigBee;无线抄表系统  中图分类号:TP393文献标识码:A文章编号:1009-3044
西南地区不仅有丰富的军事文化资源、红色文化资源和传统文化资源,更有让全军创作人羡慕的少数民族文化资源富矿。这里淳朴的民风、独特的地域文化和军区部队边防文化交融生辉,构成了一幅民族团结、鱼水情深的斑斓画卷。重视民族舞蹈创作,一直是军区文艺战线的光荣传统和鲜明特色,也是促进西南社会和谐与民族团结的艺术纽带。军区几代文艺工作者以青春和生命融入了这片土地,回望历史,我常常问自己为什么不能放下民族舞蹈的创作
《巨人的花园》是英国唯美主义作家奥斯卡·王尔德创作的童话作品,这篇文章文笔优美、故事温馨,得到了广泛的好评。文章被选人了人教版语文教材四年级上册。  一、体会语言之美  从前,一个小村子里有座漂亮的花园。那里,春天鲜花盛开,夏天绿树成荫,秋天鲜果飘香,冬天白雪一片。  这是课文开篇描写小村子里美丽的花园的一段文字。在教学中,教师可以向学生提出问题:“假如你看见一座美丽的花园,会如何用自己的语言来描
摘要:该文首先简要分析了Qtopia的实现技术和应用现状,然后详细论述了如何在基于s3c2440架构的开发板上移植Qtopia开发平台的过程,并结合项目需求介绍了Qtopia平台部分功能的完善。此外还介绍了MPlayer的移植过程,以及开发环境的搭建和若干开发实例。  关键词:Qtopia,嵌入式Linux,utu2440,MPlayer  中图分类号:TP316文献标识码:A文章编号:1009-