这篇文章主要是对web爬虫有个大概的认知。
概览web爬虫
web爬虫主要功能是从web中发现,下载以及存储内容。广泛应用于各种搜索引擎中。
一个典型的web爬虫主要由以下的部分组成:
- 能被爬虫识别的URL库。
- 文档下载模块,主要用于从web中下载内容。
- 文档解析模块,用于解析下载文档中的内容,如解析HTML,PDF,Word等等。这个模块还要提取网页中的URL和一些对于索引有用的数据。
- 存储文档的元数据以及内容的库。
- 规范化URL模块,把URL转成标准的格式。
- URL过滤器,爬虫可以过滤掉不需要的URL。
设计与实现上述模块,主要取决于你的爬虫到底要爬取什么以及要抓取的范围。最简单的例子是从一个已知的站点抓取一些网页,这个爬虫代码用一页纸就可以写完。互联网应用中,可能会碰到这种十分简单的需求,但是如果要实现一个爬取大量文档的爬虫,就不是那么简单了。一般来说这个爬虫就是N个应用组成,并且难点是基于分布式的。
爬虫的两个阶段
一个典型的爬虫主要有如下两个阶段
- URL库初始化然后开始爬取。
- 爬虫读取没有访问过的URL,来确定它的工作范围。
对于要抓取的URL,要进行如下的不重
- 获取URL的内容
- 解析内容,获取URL以及所需的数据。
- 存储有价值的数据。
- 规范化新抓取的URL。
- 过滤掉不需要爬去的URL。
- 把要抓取的URL更新到URL库中。
- 重复步骤2,直到抓取的网页深度完毕为止。
从广度进行分类的话,爬虫有两类。通用型和集中型。通用型是采集所有能解析的文档。它们主要通过URL过滤技术来实现这一过程。而集中型爬虫主要爬取特定内容的文档,如爬取sina博客,格式为固定内容也是我们感兴趣的。
幸运的是,有开源的爬虫可以使用
在java中,nutch和heritrix都提供了爬虫的实现。Nutch是apache lucene的子项目,地址是http://lucene.apache.org/nutch/。这个项目非常稳定,并且文档丰富。Nutch把多个网页存储在一个文件中。对于大的爬虫来说,这么降低I/O读写,性能更加优秀。
Heritrix是互联网存档的web爬虫。项目地址为http://crawler.archive.org/。Heritrix专注于大型爬虫的实现。许可证为LGPL。
另外提一下,还有一个项目值得关注,那就是apache tika。项目地址为http://tika.apache.org/。tika使用解析器从文档中发现以及提取元数据和文本内容。
分享到:
相关推荐
搜索引擎Web爬虫是互联网信息获取的关键技术之一,它在数据挖掘、内容分析、网站排名等多个领域都有着广泛的应用。Web爬虫,也称为网络蜘蛛或网页抓取器,是一种自动浏览互联网并下载网页的程序。它按照一定的规则...
在当今信息化社会,网络数据的海量增长为信息获取带来了挑战,而Web爬虫作为自动提取网络信息的重要工具,对于数据挖掘、学术研究以及商业分析等领域具有重大价值。本篇论文旨在深入探讨基于Web爬虫的基本原理及其新...
标题:"Web爬虫一个WEB爬虫的实例——JAVA." 描述:"web技术爬虫可用很犀利" 标签:"爬虫技术" 部分代码内容分析与详细解释: 该Java代码展示了一个简单的Web爬虫(SearchCrawler)类,用于在指定的网站上搜索...
【标题】"web爬虫合集.zip" 是一个包含了多种Web爬虫相关资源的压缩文件。这个合集可能包括了不同编程语言实现的爬虫代码示例、爬虫框架的介绍、爬虫项目的源码以及关于网络爬虫的教程资料。 【描述】提到的 "web...
在本话题中,我们将深入探讨如何使用Python来编写一个微型Web爬虫。Web爬虫是一种自动抓取互联网信息的程序,它能够帮助我们高效地获取大量网页数据,用于研究、分析或构建各种应用。 首先,我们要了解Web爬虫的...
毕业设计web爬虫,基于web爬虫的疫情监测系统源码+数据库 建立数据库中的表 python manage.py makemigrations python manage.py migrate python manage.py runserver --nothreading --noreload 0.0.0.0:8001 修改...
Ruby-Wombat是一个专门为Ruby开发者设计的轻量级Web爬虫工具。它的主要目的是帮助开发者高效地从网页上抓取和解析结构化的数据。Wombat以其简洁的Domain Specific Language(DSL)著称,允许用户以优雅的方式定义...
【web爬虫程序(亲测可用,含sql文件)】是一个关于网络数据抓取的实践项目,其中包含了一个实现爬取功能的Java程序SohuNews.java和相关的SQL数据库文件。这个程序旨在从互联网上自动收集信息,特别是针对搜狐新闻...
**广域网分布式Web爬虫概述** 广域网分布式Web爬虫是一种用于大规模网络数据抓取的技术,相较于局域网爬虫,它具有更广泛的数据覆盖能力、更高的爬取效率和更好的可扩展性。分布式爬虫通过将爬取任务分散到多个节点...
Python是一种广泛应用于Web爬虫开发的编程语言,其简洁明了的语法和强大的库支持使得爬虫编写变得高效且易维护。在这个名为"Python实现的Web爬虫"的主题中,我们将深入探讨Python在爬虫开发中的核心概念和技术。 ...
《电子商务Web爬虫技术解析与应用》 在数字化时代的今天,电子商务已经成为商业活动的重要组成部分,而数据挖掘在其中起着至关重要的作用。ECommerceCrawlers Web爬虫v11便是一个专门针对电子商务领域的数据抓取...
**PyReptile:快速高效的Web爬虫框架详解** PyReptile,作为一个专为Python开发者设计的高级Web爬虫框架,旨在简化网页抓取和数据提取的过程。它以其高效和灵活的特点,广泛应用于数据挖掘、网站监控以及自动化测试...
本开源项目是一款基于Java语言的Web爬虫设计实现,包含308个文件,涵盖130个Java源代码文件、75个GIF图片、25个HTML文件、25个JavaScript文件、20个CSS文件、7个文本文件、5个XML文件、4个PNG图片、2个Git忽略文件、...
毕业设计web爬虫,基于web爬虫的疫情监测系统
Web爬虫,又称为网络爬虫或网页蜘蛛,是一种自动浏览和索引互联网信息的智能程序。它通过遵循HTTP协议,模拟用户行为,遍历网页并抓取所需内容,为搜索引擎或其他数据分析应用提供数据来源。从广义上来讲,任何能够...
在Java领域,实现Web爬虫技术可以帮助开发者获取大量网页数据,进行数据分析、搜索引擎优化、市场研究等多种用途。本资源"Java-Web-crawler-spider.rar"包含了一套Java编写的Web爬虫源码,提供了智能网罗信息的能力...
Python Sukhoi是一款高效且设计简洁的Web爬虫框架,专为那些寻求在Python中进行网页抓取的开发者而设计。这款爬虫以其强大的功能和灵活性而受到关注,尤其适合处理复杂的网页抓取任务。在深入探讨Sukhoi之前,我们...
**Spidy:简单易用的命令行Web爬虫** 在Python开发领域,Web爬虫是数据挖掘和自动化信息处理的重要工具。Spidy是一款强大的、基于命令行的Web爬虫,专为那些寻求简洁高效解决方案的开发者设计。它以其易于理解和...