网站大量收购独家精品文档,联系QQ:2885784924

基于C#多线程Web实体抽取设计及实现.docx

基于C#多线程Web实体抽取设计及实现.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于C#多线程Web实体抽取设计及实现 摘要:介绍了 c#网络编程及c#多线程编程的相关类库, 以及网络编程的相关类库,并通过一个大型评论网站的数据 抽取为背景,分析了相关的技术难点,分为抽取、处理、存 储三个模块,构造了解决方案并将其实现。实验证明,该框 架非常有效。 关键词:C#;网络编程;多线程编程;数据抽取 中图分类号:TP319文献标识码:A文章编号:1672-7800 (2013) 001-008402 0引言 随着互联网的发展,Web上数据的价值越来越得到研究 人员的重视。因而获取Web±的信息成为深入研究的一个重 要基础手段。很多的大型网站会提供API供研究人员抽取其 数据。然而,仍然有相当多的网站并没有提供APR对这样 的网站进行研究,就必须依靠编程,用程序抽取,最常见的 就是网络爬虫。本文利用比较便利的C#网络编程,结合多线 程、正则表达式、AD0等技术,实现一个大型网站的评论实 体抽取到本地的应用。文中计划抽取的网站 Resellerrating, com是美国一个著名的网购评论网站,平均 每天新增评论约1500条,到目前为止大概有20个类别约 56000家网店约141万条评论,因此数据量非常大。笔者综 合了 Web抽取的关键技术,设计了解决方案,得到了满意的 抽取结果。 1C#网络编程 C#中用于网络编程的类主要在System. Net和 System. Net. Sockets这两个命名空间。 System. Net命名空间为当前网络上使用的多种协议提 供了简单的编程接口。WebRequest和WebResponse类形成了 所谓的可插接式协议的基础,可插接式协议是网络服务的一 种实现,使开发者能够开发出使用Internet资源的应用程 序,而不必考虑各种不同协议的具体细节。WebRequest 是.NETFramework的请求/响应模型的abstract基类,发出 对统一资源标识符(URI)的请求,用于访问Internet数据。 使用该请求/响应模型的应用程序可以用协议不可知的方式 从Internet请求数据,在这种方式下,应用程序处理 WebRequest类的实例,而协议特定的子类则执行请求的具体 细节。请求从应用程序发送到某个特定的URI,如服务器上 的网页。WebResponse类是abstract基类,协议特定的响应 类从该抽象基类派生。应用程序可以使用WebResponse类的 实例以协议不可知的方式参与请求和响应事务,而从 WebResponse派生的协议特定的类携带请求的详细信息。客 户端应用程序不直接创建WebResponse对象,而是通过对 WebRequest实例调用GetResponse方法来进行创建。 Socket类为网络通信提供了一套丰富的方法和属性。 Socket类允许开发者使用ProtocolType枚举中所列出的任 何一种协议执行异步和同步数据传输。Socket类遵循异步方 法的.NETFramework命名模式,例如,同步Receive方法对 应于异步BeginReceive和EndReceive方法。如果应用程序 在执行期间只需要一个线程,可以使用下面两种方法,这些 方法适用于同步操作模式:①如果当前使用的是面向连接的 协议(如TCP),则服务器可以使用Listen方法侦听连接。 Accept方法处理任何传入的连接请求,并返回可用于与远程 主机进行数据通信的Socketo可以使用此返回的Socket来 调用Send或Receive方法;如果要指定本地IP地址和端口 号,那么在调用Listen方法之前先调用Bind方法;如果希 望基础服务提供程序为用户分配可用端口,请使用端口号0; 如果希望连接到侦听主机,可以调用Connect方法;若要进 行数据通信,那么调用Send或Receive方法;②如果当前 使用的是无连接协议(如UDP),则根本不需要侦听连接。调 用ReceiveFrom方法来接受任何传入的数据报,使用SendTo 方法可将数据报发送到远程主机。若要在执行过程中使用单 独的线程处理通信,那么可以使用下面的方法,这些方法适 用于异步操作模式;③如果当前使用的是面向连接的协议 (如 TCP),则可使用 Socket、BeginConnect 和 EndConnect 方法来连接侦听主机。通过使用BeginSend和EndSend方法, 或者使用BeginReceive和EndReceive方法,可以进行异步 数据通信。可以使用BeginAccept和EndAccept处理传入的 连接请求;④如果使用UDP等无连接协议,则可以使用 BeginSendTo和EndSendTo来发送数据报,而使用 BeginReceiveFrom 和 EndReceiveFr

文档评论(0)

ggkkppp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档