外链论坛

 找回密码
 立即注册
搜索
查看: 47|回复: 3

玩大数据必定用得到的19款Java开源Web爬虫

[复制链接]

2899

主题

1万

回帖

9606万

积分

论坛元老

Rank: 8Rank: 8

积分
96066391
发表于 2024-8-25 17:49:24 | 显示全部楼层 |阅读模式

网络爬虫(又被叫作为网页蜘蛛,网络设备人,在FOAF社区中间,更经常的叫作为网页追逐者),是一种根据必定的规则,自动地抓取万维网信息的程序脚本。另一有些不常运用的名字还有蚂蚁、自动索引、模拟程序蠕虫。

今天将为大众介绍19款Java开源Web爬虫,需要的小伙伴们赶快保藏吧。

1、Heritrix

Heritrix 是一个由 java 研发的、开源的网络爬虫,用户能够运用它来从网上抓取想要的资源。其最出色之处在于它良好的可扩展性,方便用户实现自己的抓取规律

Heritrix 是个“Archival Crawler”——来获取完整的、精确的、站点内容的深度复制。包含获取图像以及其他非文本内容。抓取并存储关联的内容。对内容来者不拒,不对页面进行内容上的修改。重新爬行对相同的URL不针对先前的进行替换。爬虫重点经过Web用户界面起步、监控和调节准许弹性的定义要获取的url。

Heritrix是按多线程方式抓取的爬虫,主线程把任务分配给Teo线程(处理线程),每一个Teo线程每次处理一个URL。Teo线程对每一个URL执行一遍URL处理器链。URL处理器链包含如下5个处理过程

(1)预取链:重点是做有些准备工作,例如,对处理进行延迟和重新处理,否决随后的操作。

(2)提取链:重点是下载网页,进行DNS转换,填写请求和响应表单。

(3)抽取链:当提取完成时,抽取感兴趣的HTML和JavaScript,通常那里有新的要抓取的URL。

(4)写链:存储抓取结果,能够在这一步直接做全文索引。Heritrix供给了用ARC格式保留下载结果的ARCWriterProcessor实现。

(5)提交链:做和此URL关联操作的最后处理。检测那些新提取出的URL在抓取范围内,而后把这些URL提交给Frontier。另一还会更新DNS缓存信息。

Heritrix系统框架图

heritrix处理一个url的流程

2、WebSPHINX

WebSPHINX 是一个 Java 类包和 Web 爬虫的交互式研发环境。 Web 爬虫 ( 叫作设备人或蜘蛛 ) 是能够自动浏览与处理 Web 页面的程序。 WebSPHINX 由两部分构成:爬虫工作平台和 WebSPHINX 类包。

WebSPHINX 是一个 Java 类包和 Web 爬虫的交互式研发环境。 Web 爬虫 ( 叫作设备人或蜘蛛 ) 是能够自动浏览与处理 Web 页面的程序。 WebSPHINX 由两部分构成:爬虫工作平台和 WebSPHINX 类包。

WebSPHINX – 用途

1.可视化表示页面的集合

2.下载页面到本地磁盘用于离线浏览

3.将所有页面拼接成单个页面用于浏览打印

4.根据特定的规则从页面中抽取文本字符串

5.用Java或Javascript研发自定义的爬虫

仔细介绍可见>>>

3、WebLech

WebLech是一个功能强大的Web站点下载与镜像工具。它支持按功能需要来下载web站点并能够尽可能模仿标准Web浏览器的行径。WebLech有一个功能掌控台并采用多线程操作。

WebLech是一个功能强大的Web站点下载与镜像免费开源工具。它支持按功能需要来下载web站点并能够尽可能模仿标准Web浏览器的行径。WebLech有一个功能掌控台并采用多线程操作。

这款爬虫足够简单,倘若初学倘若编写爬虫,可做入门参考。因此选取了用这个爬虫起始我的科研倘若只是做需求不高的应用,可试试。倘若想找一款功能强大,就别在WebLech上浪费时间了。

该项目主页

:http://weblech.sourceforge.net/

特点:

1)开源,免费

2)代码是用纯Java写的,能够在任何支持Java的平台上

3)支持多线程下载网页

4)可维持网页间的链接信息

5)可配置性强: 深度优先或宽度优先爬行网页 可定制URL过滤器,这般能够按需要爬行单个web服务器,单个目录或爬行整 个WWW网络 可设置URL的优先级,这般能够优先爬行咱们感兴趣或重要的网页 可记录断点时程序的状态,一边重新起步时可接着上次继续爬行。

4、Arale

Arale重点为个人运用而设计,而像其它爬虫同样是关注于页面索引。Arale能够下载全部web站点或来自web站点的某些资源。Arale还能够把动态页面映射成静态页面。

5、JSpider

JSpider:是一个完全可配置和定制的Web Spider引擎.你能够利用它来检测网站的错误(内在的服务器错误等),网站内外边链接检测,分析网站的结构(可创建一个网站地图),下载全部Web站点,你还能够写一个JSpider插件来扩展你所需要的功能。

Spider是一个用Java实现的WebSpider,JSpider的执行格式如下:

jspider [URL] [ConfigName]

URL必定要加上协议名叫作,如:http://,否则会报错。倘若省掉ConfigName,则采用默认配置。

JSpider 的行径是由于配置文件详细配置的,例如采用什么插件,结果存储方式等等都在conf\[ConfigName]\目录下设置。JSpider默认的配置种类 很少,用途不大。然则JSpider非常容易扩展,能够利用它研发强大的网页抓取与数据分析工具。要做到这些,需要对JSpider的原理有深入的了 解,而后按照自己的需要研发插件,撰写配置文件。

Spider是:

一个高度可配置和和可定制Web爬虫

LGPL开源许可下研发

100%纯Java实现

能够运用它来:

检测您网站的错误(内部服务器错误, …)

传出或内部链接检测

分析你网站的结构(创建一个sitemap, …)

下载整修网站

经过编写JSpider插件实现任何功能.

该项目主页:

http://j-spider.sourceforge.net/

6、spindle

spindle是一个构建在Lucene工具包之上的Web索引/搜索工具.它包含一个用于创建索引的HTTP spider和一个用于搜索这些索引的搜索类。spindle项目供给了一组JSP标签库使得哪些基于JSP的站点不需要研发任何Java类就能够增多搜索功能。

7、Arachnid

Arachnid是一个基于Java的web spider框架.它包括一个简单的HTML剖析器能够分析包括HTML内容的输入流.经过实现Arachnid的子类就能够研发一个简单的Web spiders并能够在Web站上的每一个页面被解析之后增多几行代码调用。 Arachnid的下载包中包括两个spider应用程序例子用于演示怎样运用该框架。

该项目主页:

http://arachnid.sourceforge.net/

8、LARM

LARM能够为Jakarta Lucene搜索引擎框架的用户供给一个纯Java的搜索处理方法。它包括能够为文件,数据库表格创立索引的办法和为Web站点建索引的爬虫。

该项目主页:

http://larm.sourceforge.net/

9、JoBo

JoBo是一个用于下载全部Web站点的简单工具。它本质是一个Web Spider。与其它下载工具相比较它的重点优良是能够自动填充form(如:自动登录)和运用cookies来处理session。JoBo还有灵活的下载规则(如:经过网页的URL,体积,MIME类型等)来限制下载。

十、snoics-reptile

1、snoics-reptile是什么?

是用纯Java研发的,用来进行网站镜像抓取的工具,能够运用配制文件中供给的URL入口,把这个网站所有的能用浏览器经过GET的方式获取到的资源所有抓取到本地,包含网页和各样类型的文件,如:照片、flash、mp3、zip、rar、exe等文件。可以将全部网站完整地下传至硬盘内,并能保持原有的网站结构精确不变。只需要把抓取下来的网站放到web服务器(如:Apache)中,就能够实现完整的网站镜像。

2、此刻已然有了其他的类似的软件,为何还要研发snoics-reptile?

由于有些在抓取的过程中经常会显现错误的文件,况且非常多运用javascript掌控的URL办法正确的解析,而snoics-reptile经过对外供给接口和配置文件的形式,对特殊的URL,能够经过自由的扩展对外供给的接口,并经过配置文件注入的方式,基本上能实现对所有的网页都正确的解析和抓取。

该项目主页:

http://www.blogjava.net/snoics

十一、Web-Harvest

Web-Harvest是一个Java开源Web数据抽取工具。它能够收集指定的Web页面并从这些页面中提取有用的数据。Web-Harvest重点是运用了像XSLT,XQuery,正则表达式等这些技术来实现对text/xml的操作。

Web-Harvest 是一个用Java 写的开源的Web 数据提取工具。它供给了一种从所需的页面上提取有用数据的办法。为了达到这个目的,你可能需要用到如XSLT,XQuery,和正则表达式等操作text/xml 的关联技术。Web-Harvest 重点着眼于日前仍占大都数的基于HMLT/XML 的页面内容。另一方面,它经过写自己的Java 办法来轻易扩展其提取能力。

Web-Harvest 的重点目的是加强现有数据提取技术的应用。它的目的不是创造一种新办法,而是供给一种更好地运用和组合现有办法的方式。它供给了一个处理器集用于处理数据和掌控流程,每一个处理器被看作是一个函数,它持有参数和执行后一样有结果返回。况且处理是被组合成一个管道的形式,这般使得它们能够以链式的形式来执行,另外为了更易于数据操作和重用,Web-Harvest 还供给了变量上下方用于存储已然声明的变量。

web-harvest 起步能够直接双击jar包运行,不外办法不可指定web-harvest java虚拟机的体积。第二种办法,在cmd下切到web-harvest的目录下,敲入命令“java -jar -Xms400m webharvest_all_2.jar” 就可起步并设置起java虚拟机体积为400M。

该项目主页:

http://web-harvest.sourceforge. net

2、ItSucks

ItSucks是一个Java Web爬虫开源项目。可灵活定制,支持经过下载模板和正则表达式来定义下载规则。供给一个掌控台和Swing GUI操作界面。

功能特性:

多线程

正则表达式

保留/载入的下载工作

在线帮忙

HTTP/HTTPS 支持

HTTP 代理 支持

HTTP身份验证

Cookie 支持

可配置的User Agent

连接限制

配置HTTP响应代码的行径

带宽限制

Gzip压缩

该项目主页:

http://itsucks.sourceforge.net/

3、Smart and Simple Web Crawler

Smart and Simple Web Crawler是一个Web爬虫框架。集成Lucene支持。该爬虫能够从单个链接或一个链接数组起始供给两种遍历模式:最大迭代和最大深度。能够设置 过滤器限制爬回来的链接,默认供给三个过滤器ServerFilter、BeginningPathFilter和 RegularExpressionFilter,这三个过滤器可用AND、OR和NOT联合。在解析过程或页面加载前后都能够加监听器。

4、Crawler4j

crawler4j是Java实现的开源网络爬虫。供给了简单易用的接口,能够在几分钟内创建一个多线程网络爬虫。

crawler4j的运用重点分为两个过程

实现一个继承自WebCrawler的爬虫类;

经过CrawlController调用实现的爬虫类。

WebCrawler是一个抽象类,继承它必须实现两个办法:shouldVisit和visit。其中:

shouldVisit是判断当前的URL是不是已然应该被爬取(拜访);

visit则是爬取该URL所指向的页面的数据,其传入的参数即是对该web页面所有数据的封装对象Page。

另一,WebCrawler还有其它有些办法可供覆盖,其办法的命名规则类似于Android的命名规则。如getMyLocalData办法能够返回WebCrawler中的数据;onBeforeExit办法会在该WebCrawler运行结束前被调用,能够执行有些资源释放之类的工作。

许可

Copyright (c) 2010-2015 Yasser Ganjisaffar

按照 Apache License 2.0 发布

开源位置

https://github.com/yasserg/crawler4j

5、Ex-Crawler

Ex-Crawler 是一个网页爬虫,采用 Java 研发,该项目分成两部分,一个是保护进程,另一一个是灵活可配置的 Web 爬虫。运用数据库存储网页信息。

Ex-Crawler分成三部分(Crawler Daemon,Gui Client和Web搜索引擎),这三部分组合起来将作为一个灵活和强大的爬虫和搜索引擎。其中Web搜索引擎部分采用PHP研发,并包括一个内容管理系统CMS用于守护搜索引擎。

该项目主页:

http://ex-crawler.sourceforge.net/joomla/

6、Crawler

Crawler是一个简单的Web爬虫。它让你不消编写枯燥,容易出错的代码,而只专注于所需要抓取网站的结构。另外它还非常易于运用

该项目主页:

http://projetos.vidageek.net/crawler/crawler/

7、Encog

Encog是一个高级神经网络和设备人/爬虫研发类库。Encog供给的这两种功能能够单独掰开运用来创建神经网络或HTTP设备人程序,同期Encog还支持将这两种高级功能联合起来运用。Encog支持创建前馈神经网络、Hopfield神经网络、自组织图。

Encog供给高级HTTP设备人/爬虫编程功能。支持将多线程爬虫产生的内容存在内存或数据库中。支持HTM解析和高级表单与Cookie处理。

Encog是一种先进的设备学习框架,它支持多种先进的算法,以及支持类正常化和处理数据。设备学习算法,如支持向量机,人工神经网络,遗传编程,贝叶斯网络,隐马尔可夫模型,遗传编程和遗传算法的支持。大都数Encog培训algoritms是多线程的,很好地扩展到多核硬件。Encog还能够运用一个GPU,以进一步加快处理时间。一个基于GUI的工作台供给帮忙模型和火车设备学习算法。自2008年败兴Encog始终在积极发展.

Encog 支持多种语言,包含C#Java 和C

在GitHub上有各样语言版本的源代码.

http://www.heatonresearch.com/encog

https://github.com/encog

8、Crawljax

Crawljax是一个开源Java工具用于Ajax Web应用程序的自动化抓取和测试。Crawljax能够抓取/爬行任何基于Ajax的Web应用程序经过触发事件和在表单中填充数据。

收录时间:2011-05-18 09:50:32

该项目主页: http://crawljax.com/

开源位置

https://github.com/crawljax/crawljax
回复

使用道具 举报

0

主题

1万

回帖

1

积分

新手上路

Rank: 1

积分
1
发表于 2024-9-3 14:23:31 | 显示全部楼层
同意、说得对、没错、我也是这么想的等。
回复

使用道具 举报

1

主题

806

回帖

-1

积分

限制会员

积分
-1
发表于 2024-9-7 13:43:23 | 显示全部楼层
期待与你深入交流,共探知识的无穷魅力。
回复

使用道具 举报

0

主题

1万

回帖

1

积分

新手上路

Rank: 1

积分
1
发表于 2024-9-10 09:58:25 | 显示全部楼层
这夸赞甜到心里,让我感觉温暖无比。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-10-19 05:21 , Processed in 0.067631 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.