基于Java的多线程网络爬虫设计与实现.pdf

基于Java的多线程网络爬虫设计与实现.pdf

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于Java的多线程网络爬虫设计与实现.pdf

MicrocomputerApplicationsVoL26,No.7,2010 研究与设计 微型电脑应用 2010年第26卷第7期 文章编号:1007-757X(2010)7-0021-02 基于Java的多线程网络爬虫设计与实现 姜梦稚 摘要:网络爬虫是目前比较流行的一种网页检索工具,其设计和实现也需要不断优化和改进。通过描述网络爬虫设计与实 现中所碰到的问题,提供解决这些问题的方法,并给出实现这些目标的网络爬虫设计方法,提供该设计的Java语言版实现。 关键词:网络爬虫;链接检索;文字匹配;爬虫设计;多线程 中图分类号:TP316 文献标志码:A 0引言 表达式。尽管具体的实现有多种方式,搜集链接也可以采用 后面所提到的HtmlParser包,但是采用正则表达式,是一种 目前,对于全球大多数互联网用户来说,搜索引擎是其 方便,快捷的手段,Java语言也提供对正则表达式的支持。 准确获得所需要信息或者知识的最有效的工具。但是对于所 多线程程序足编程中比较复杂的问题,除了对线程的调 有的搜索引擎来说,最重要的性能指标有两个:查伞率和查 试比较凼难外,对线程所使用的资源的控制也同样复杂。在 准率。查全率与搜索引擎搜集的网贞数量和质量有关。 Java平台下对多线程的编程有充分支持,因此在设计 本文介绍的是用于搜集网页, 提高查伞率的最重要的 工具一网络爬虫(WebCrawler)的设计与实现。网络爬虫的=E 要作用是搜集曩联网的网页,也叮以用它来定期搜集某个网 启动的时候,设置所需创建的线程数量,一旦线程池为窄, 站的内容,跟踪判断网站的发展,或者做站内搜索引擎。从 则挂起当前请求,等待窄闲的线程出现;原子数则可以保证 网络爬虫的工作原理来看,“网络爬虫”是一个比较形象的 程序中的计数以瓦斥的方式操作,保证了递增和递减操作的 名字,它是在互联网内,通过网页链接,从当前网页爬到F 一个网页来进行网页内容搜集的T具。它所需完成的T作llJ不会出现两个线程同时访问一个数据。 如卜.:(1)在一个网页七,获取网页的标题和网页中的摘要; 本文中实现的Crawler中第三个考虑的问题就是获取网 (2)将搜集到的网页标题,链接,网页的摘要放入数据库 页的内容、提取网页摘要信息和标题信息。网页内容的获取 中;(3)根据当前网页的内容,搜集网页中的链接信息,并 方式有多种,比较常用的就是想网页发出一个Http请求, 根据链接顺序搜索相应链接网页的内容。 并获取返回的字符流。考虑到实现这种请求/响应方式的复 杂性,本文采用了HtmlPard4J包来具体实现网页内容的获 l WebCrawler中的若干问题 取。对于标签的获取采用两种方式,一种是采用HtmlParser 包来获取,另外一种提取文本的方式也可以使用正则表达式 不同的WebCrawler,在设计的时候侧重各有不同,本 15】,在构造合适的正则表达式时,需要考虑到标签的特殊结 文所介绍的WebCrawler在设计的时候主要考虑解决以下几 构,为了提高文字的抽取效率,可以对一段html源码茸先 个问题:(1)WebCrawler遍历网页中的所彳J.链接,并且能对 过滤掉一些不需要的标签。采用HtmIPalSer包除了能够获得 Crawler能够提 所搜索的网贞进行搜索深度的限制;(2)Web 网页的内容外,该包还能提供一系列的获取网页内容的工具 取出网贞中的摘要和标题信息,并且保存剑数据库中:(3) 类,获取特定标签,并通过标签筛选规则的运用,获取包含 要求能够对已有的搜索引擎的搜索结果再优化

文档评论(0)

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

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

版权声明书
用户编号:6100124015000001

1亿VIP精品文档

相关文档