网页中flash数据抓取(从网上找了一些开源spider的相关资料(图))
优采云 发布时间: 2021-12-15 04:36网页中flash数据抓取(从网上找了一些开源spider的相关资料(图))
我从网上找了一些关于开源蜘蛛的相关资料,整理如下:
-------------------------------------------------- ---------------------------------
**************
拉宾
开发语言:C++
Larbin 是一个基于 C++ 的网络爬虫工具,界面易于操作,但只能在 LINUX 下运行。Larbin在普通PC下每天可以抓取500万个页面(当然,你需要有良好的网络)
介绍
Larbin 是一个开源的网络爬虫/网络蜘蛛,由法国年轻人 Sébastien Ailleret 独立开发。larbin 的目的是能够跟踪页面的 URL 进行扩展抓取,最终为搜索引擎提供广泛的数据源。
larbin只是一个爬虫,也就是说larbin只爬网页,如何解析是用户自己做的。此外,larbin 没有提供有关如何将其存储在数据库中和构建索引的信息。
Latbin 最初的设计也是基于设计简单但可配置性高的原则,所以我们可以看到一个简单的 larbin 爬虫每天可以获取 500 万个网页,非常高效。
特征
1. larbin 获取一个,确认网站的所有链接,甚至镜像一个网站。
2. larbin建立一个url列表组,比如url检索所有网页后,得到xml的链接。或mp3。
3. larbin 可以定制为搜索引擎信息的来源(例如每2000组抓取的网页可以存储在一系列目录结构中)。
问题
Labin的主要问题是:
只提供保存网页的功能,不做进一步的网页分析;
不支持分布式系统;
功能比较简单,提供的配置项不够;
不支持网页自动重访和更新功能;
从2003年底开始,Labin就放弃了更新,目前处于荒草丛生的状态。
**********
纳奇
开发语言:Java
介绍:
Apache的子项目之一是Lucene项目下的子项目。
Nutch 是一个完整的网络搜索引擎解决方案,基于Lucene,类似于谷歌。基于Hadoop的分布式处理模型保证了系统的性能。类似Eclipse的插件机制保证了系统可以定制,并且很容易集成到自己的应用程序中。之中。
一般来说,Nutch 可以分为两个部分:爬行部分和搜索部分。爬行程序对页面进行爬行,将检索到的数据制成倒排索引,搜索程序响应用户的倒排索引搜索请求。爬虫和搜索器的接口是索引,都使用索引中的字段。抓取程序和搜索程序可以位于不同的机器上。下面是爬取部分的详细介绍。
爬行部分:
履带由Nutch的履带驱动。这是一组用于创建和维护几种不同数据结构的工具:Web 数据库、一组段和索引。下面对这三种不同的数据结构进行一一说明:
1、Web 数据库或 WebDB。这是一种特殊的存储数据结构,用于映射捕获的网站数据的结构和属性集合。WebDB用于存储从爬取(包括重新爬取)开始的所有网站结构数据和属性。WebDB 仅供爬虫程序使用,搜索程序不使用。WebDB 存储两种实体:页面和链接。该页面代表 Internet 上的网页。将该网页的URL作为标记编入索引,同时创建该网页内容的MD5哈希签名。与网页相关的其他内容也被存储,包括:页面中的链接数(外部链接)、页面爬取信息(在页面被重复爬取的情况下)、以及表示页面级别的分数。链接代表从一个网页到其他网页的链接。因此,WebDB 可以说是一个网络图,以节点为页面,以链接为边。
2、段。这是网页的集合,并已编入索引。Segment 的 Fetchlist 是爬虫使用的 URL 列表,由 WebDB 生成。Fetcher 的输出数据是从 fetchlist 中取出的网页。Fetcher的输出数据先进行反向索引,然后将索引结果存入segment中。一个segment的生命周期是有限的,下一轮爬行开始的时候就没用了。默认重新爬网间隔为 30 天。因此,可以删除超过此时间限制的段。并且可以节省大量磁盘空间。Segment 以日期和时间命名,因此可以非常直观地查看其生命周期。
3、索引。索引库是系统中所有爬取到的页面的反向索引。它不是直接从页面反向索引生成的,而是由许多小段索引合并生成的。Nutch 使用Lucene 来构建索引,所以所有与Lucene 相关的工具API 都用于构建索引库。需要说明的是,Lucene的segment概念与Nutch的segment概念完全不同,不要混淆。简单的说,Lucene的segment是Lucene索引库的一部分,而Nutch的segment是被爬取索引的WebDB的一部分。
爬取过程的详细说明:
获取是一个循环过程:获取工具从 WebDB 生成一个 fetchlist 集合;提取工具根据fetchlist从互联网上下载网页内容;工具程序根据提取工具找到的新链接更新WebDB;然后生成一个新的fetchlist;反复。这个 fetch 循环在 nutch 中通常被称为:生成/获取/更新循环。
一般来说,同一个域名下的url链接会被合成到同一个fetchlist中。这样做的考虑是当同时使用多个工具进行抓取时,不会出现重复抓取。Nutch 遵循Robots Exclusion Protocol,可以使用robots.txt 来定义和保护私人网页数据不被捕获。
以上抓取工具的组合是Nutch的最外层。也可以直接使用底层工具,结合这些底层工具的执行顺序,也可以达到同样的效果。这就是纳奇的魅力所在。下面详细描述上述过程。基础工具的名称在括号中:
1、创建一个新的 WebDB (admin db -create)。
2、将开始爬取和Url放入WebDb(注入)。
3、 从WebDb的新段生成fetchlist(生成)。
4、 根据fetchlist列表(fetch)获取网页的内容。
5、根据检索到的网页链接url更新WebDB(updatedb)。
6、重复以上3-5步,直到达到指定的爬行层数。
7、 使用计算出的 web url 权重分数更新段 (updatesegs)。
8、 将抓取的网页编入索引。
9、 消除索引中的重复内容和重复网址(dedup)。
10、将多个索引合并为一个大索引,并提供索引库(merge)进行搜索。
*****************
赫里特克斯
开发语言:Java
Heritrix 是一个开源、可扩展的网络爬虫项目。Heritrix 的设计严格遵循 robots.txt 文件和 META 机器人标签的排除说明。
介绍
Heritrix 和 Nutch 的比较
还有纳奇。两者都是 Java 开源框架。Heritrix 是 SourceForge 上的开源产品。Nutch 是 Apache 的一个子项目。它们都被称为网络爬虫。它们的实现原理基本一致:深度遍历网站在本地捕获这些资源,使用的方法是分析每个有效的URI网站并提交一个Http请求得到相应的结果,生成本地文件和相应的日志信息等。
Heritrix 是一个“档案爬虫”——用于获取完整、准确、深层的网站内容副本。包括获取图片等非文字内容。抓取和存储相关内容。不拒绝内容,不修改页面内容。重新抓取不会替换同一 URL 的前一次抓取。通过Web用户界面启动、监控和调整爬虫,可以灵活定义获取URL。
Nutch和Heritrix的区别:
Nutch 只获取和保存可索引的内容。Heritrix 接受这一切。力求保留页面原貌
Nutch 可以修剪内容,或转换内容格式。
Nutch 以数据库优化格式保存内容,以备将来索引;刷新并替换旧内容。而 Heritrix 正在添加(追加)新的内容。
Nutch 是从命令行运行和控制的。Heritrix 有一个网页控制管理界面。
Nutch 的定制能力还不够强大,但现在已经改进了。Heritrix 可以控制更多的参数。
Heritrix 提供的功能没有 nutch 多,有点像从整个站点下载。既没有索引也没有解析,即使是重复的URL爬取也不是很好。
Heritrix 功能强大,但配置起来有点麻烦。
************************
三者的比较
一、 在功能上,Heritrix 和 Larbin 有着相似的功能。两者都是纯网络爬虫,提供网站的镜像下载。虽然 Nutch 是一个网络搜索引擎框架,但抓取网页只是其功能的一部分。
二、 从分布式处理的角度来看,Nutch 支持分布式处理,而另外两个好像还没有被支持。
三、 从抓取的网页存储方式来看,Heritrix和Larbin都将抓取的内容保存为原创内容类型。并且 Nutch 将内容保存到其特定的格式段。
第四,对于爬取内容的处理,Heritrix和Larbin都将爬取的内容直接保存为原创内容,不做任何处理。Nutch 处理文本包括链接分析、文本提取和索引(Lucene 索引)。
第五,在爬取效率方面,Larbin的效率更高,因为它是用C++实现的,功能单一。
爬虫
发展
语
特征
单身的
支持分布式
爬行
高效的
镜像
保存
纳奇
爪哇
X
√
低的
X
拉宾
C++
√
X
高的
√
赫里特克斯
爪哇
√
X
中间
√
-------------------------------------------------- ---------
其他一些开源爬虫的总结:
网络SPHINX
WebSPHINX 是 Java 类包和网络爬虫的交互式开发环境。网络爬虫(也称为机器人或蜘蛛)是可以自动浏览和处理网页的程序。WebSPHINX由两部分组成:爬虫工作平台和WebSPHINX包。
~rcm/websphinx/
网络学习
WebLech 是一个强大的网站下载和镜像工具。支持根据功能需求下载网站,并尽可能模仿标准网页浏览器的行为。WebLech 有功能控制台,使用多线程操作。
阿拉蕾
Arale 主要是为个人使用而设计的,不像其他爬虫那样专注于页面索引。Arale 可以下载整个网站或网站上的部分资源。Arale 还可以将动态页面映射到静态页面。
J-蜘蛛
J-Spider:是一个完全可配置和可定制的 Web Spider 引擎。可以用它来检查网站错误(内部服务器错误等),网站内外部链接检查,分析网站的结构(可以创建一个网站@ > map),下载整个网站,也可以写一个JSpider插件扩展你需要的功能。
主轴
Spindle 是一种建立在 Lucene 工具包上的 Web 索引/搜索工具。它包括一个用于创建索引的 HTTP 蜘蛛和一个用于搜索这些索引的搜索类。Spindle 项目提供了一套JSP 标签库,让那些基于JSP 的站点无需开发任何Java 类就可以添加搜索功能。
蛛形纲动物
Arachnid:是一个基于 Java 的网络蜘蛛框架。它收录一个简单的 HTML 解析器,可以分析收录 HTML 内容的输入流。通过实现Arachnid子类,就可以开发出一个简单的网络蜘蛛,可以在每一个网站中使用 解析一个页面后,添加几行代码调用。Arachnid 下载包中收录两个蜘蛛应用程序示例,用于演示如何使用该框架。
警报器
LARM 可为 Jakarta Lucene 搜索引擎框架的用户提供纯 Java 搜索解决方案。它收录索引文件、数据库表和用于索引网站的爬虫的方法。
乔博
JoBo 是一个用于下载整个网站的简单工具。它本质上是一个网络蜘蛛。与其他下载工具相比,它的主要优点是能够自动填写表单(如自动登录)和使用cookies来处理会话。JoBo 还具有灵活的下载规则(如:URL、大小、MIME 类型等)来限制下载。
snoics-爬行动物
snoics -reptile 是用纯 Java 开发的。它是用于捕获网站 图像的工具。您可以使用配置文件中提供的 URL 条目。这种方式获取的所有资源都是本地抓取的,包括网页和各类文件,如图片、flash、mp3、zip、rar、exe等文件。整个网站可以完全转移到硬盘上,保持原有的网站结构准确不变。只需将捕获到的网站放入Web服务器(如Apache)即可实现完整的网站镜像。
网络收获
Web-Harvest 是一个 Java 开源 Web 数据提取工具。它可以采集指定的网页并从这些网页中提取有用的数据。Web-Harvest主要使用XSLT、XQuery、正则表达式等技术来实现text/xml的操作。
蜘蛛
Spiderpy 是一个基于 Python 编码的开源网络爬虫工具,允许用户采集文件和搜索网站,并具有可配置的界面。
蜘蛛网网络 Xoops Mod 团队
pider Web Network Xoops Mod 是 Xoops 下的一个模块,完全由 PHP 语言实现。