您好,欢迎访问三七文档
爬虫技术精髓爬虫原理:每个网页页面返回到客户端的都是html,你需要的内容就在这html里面,这个html你可以用一个字符串去保存到java变量里,你要做的工作就是截取字符串相应位置的内容并保存起来,你给的这个网站每个商品的网页有个特殊的地方爬虫分为两类:聚集爬虫:聚焦爬虫是一个自动下载网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关的链接,获取所需要的信息。聚焦爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。通用爬虫:网络爬虫的组成在网络爬虫的系统框架中,主过程由控制器,解析器,资源库三部分组成。控制器的主要工作是负责给多线程中的各个爬虫线程分配工作任务。解析器的主要工作是下载网页,进行页面的处理,主要是将一些JS脚本标签、CSS代码内容、空格字符、HTML标签等内容处理掉,爬虫的基本工作是由解析器完成。资源库是用来存放下载到的网页资源,一般都采用大型的数据库存储,如Oracle数据库,并对其建立索引。控制器:控制器是网络爬虫的中央控制器,它主要是负责根据系统传过来的URL链接,分配一线程,然后启动线程调用爬虫爬取网页的过程。解析器:解析器是负责网络爬虫的主要部分,其负责的工作主要有:下载网页的功能,对网页的文本进行处理,如过滤功能,抽取特殊HTML标签的功能,分析数据功能。资源库:主要是用来存储网页中下载下来的数据记录的容器,并提供生成索引的目标源。中大型的数据库产品有:Oracle、SqlServer等。研究爬虫技术的网站:目前只发现是专注于研究爬虫技术网站。概览web爬虫web爬虫主要功能是从web中发现,下载以及存储内容。广泛应用于各种搜索引擎中。一个典型的web爬虫主要由以下的部分组成:能被爬虫识别的URL库。文档下载模块,主要用于从web中下载内容。文档解析模块,用于解析下载文档中的内容,如解析HTML,PDF,Word等等。这个模块还要提取网页中的URL和一些对于索引有用的数据。存储文档的元数据以及内容的库。规范化URL模块,把URL转成标准的格式。URL过滤器,爬虫可以过滤掉不需要的URL。设计与实现上述模块,主要取决于你的爬虫到底要爬取什么以及要抓取的范围。最简单的例子是从一个已知的站点抓取一些网页,这个爬虫代码用一页纸就可以写完。互联网应用中,可能会碰到这种十分简单的需求,但是如果要实现一个爬取大量文档的爬虫,就不是那么简单了。一般来说这个爬虫就是N个应用组成,并且难点是基于分布式的。爬虫的两个阶段一个典型的爬虫主要有如下两个阶段1.URL库初始化然后开始爬取。2.爬虫读取没有访问过的URL,来确定它的工作范围。对于要抓取的URL,要进行如下的不重1.获取URL的内容2.解析内容,获取URL以及所需的数据。3.存储有价值的数据。4.规范化新抓取的URL。5.过滤掉不需要爬去的URL。6.把要抓取的URL更新到URL库中。7.重复步骤2,直到抓取的网页深度完毕为止。从广度进行分类的话,爬虫有两类。通用型和集中型。通用型是采集所有能解析的文档。它们主要通过URL过滤技术来实现这一过程。而集中型爬虫主要爬取特定内容的文档,如爬取sina博客,格式为固定内容也是我们感兴趣的。幸运的是,有开源的爬虫可以使用在java中,nutch和heritrix都提供了爬虫的实现。Nutch是apachelucene的子项目,地址是。这个项目非常稳定,并且文档丰富。Nutch把多个网页存储在一个文件中。对于大的爬虫来说,这么降低I/O读写,性能更加优秀。Heritrix是互联网存档的web爬虫。项目地址为。Heritrix专注于大型爬虫的实现。许可证为LGPL。另外提一下,还有一个项目值得关注,那就是apachetika。项目地址为。tika使用解析器从文档中发现以及提取元数据和文本内容。Google:《Java开源Web爬虫分类列表》(1)ItSucks是一个javawebspider(web机器人,爬虫)开源项目。支持通过下载模板和正则表达式来定义下载规则。提供一个swingGUI操作界面。下载地址:(2)WebSPHINXWebSPHINX是一个Java类包和Web爬虫的交互式开发环境。Web爬虫(也叫作机器人或蜘蛛)是可以自动浏览与处理Web页面的程序。WebSPHINX由两部分组成:爬虫工作平台和WebSPHINX类包。.(3)JSpiderJSpider:是一个完全可配置和定制的WebSpider引擎.你可以利用它来检查网站的错误(内在的服务器错误等),网站内外部链接检查,分析网站的结构(可创建一个网站地图),下载整个Web站点,你还可以写一个JSpider插件来扩展你所需要的功能。(4)AraleArale主要为个人使用而设计,而没有像其它爬虫一样是关注于页面索引。Arale能够下载整个web站点或来自web站点的某些资源。Arale还能够把动态页面映射成静态页面。(5)Web-HarvestWeb-Harvest是一个Java开源Web数据抽取工具。它能够收集指定的Web页面并从这些页面中提取有用的数据。Web-Harvest主要是运用了像XSLT,XQuery,正则表达式等这些技术来实现对text/xml的操作。
本文标题:爬虫技术精髓
链接地址:https://www.777doc.com/doc-4425311 .html