首页 » PHP教程 » php爬虫开源技巧_玩大年夜数据一定用获得的19款Java开源Web爬虫

php爬虫开源技巧_玩大年夜数据一定用获得的19款Java开源Web爬虫

访客 2024-11-01 0

扫一扫用手机浏览

文章目录 [+]

本日将为大家先容19款Java开源Web爬虫,须要的小伙伴们赶紧收藏吧。

一、Heritrix

php爬虫开源技巧_玩大年夜数据一定用获得的19款Java开源Web爬虫

Heritrix 是一个由 java 开拓的、开源的网络爬虫,用户可以利用它来从网上抓取想要的资源。
其最出色之处在于它良好的可扩展性,方便用户实现自己的抓取逻辑。

php爬虫开源技巧_玩大年夜数据一定用获得的19款Java开源Web爬虫
(图片来自网络侵删)

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的流程

二、WebSPHINX

WebSPHINX 是一个 Java 类包和 Web 爬虫的交互式开拓环境。
Web 爬虫 ( 也叫作机器人或蜘蛛 ) 是可以自动浏览与处理 Web 页面的程序。
WebSPHINX 由两部分组成:爬虫事情平台和 WebSPHINX 类包。

WebSPHINX 是一个 Java 类包和 Web 爬虫的交互式开拓环境。
Web 爬虫 ( 也叫作机器人或蜘蛛 ) 是可以自动浏览与处理 Web 页面的程序。
WebSPHINX 由两部分组成:爬虫事情平台和 WebSPHINX 类包。

WebSPHINX – 用场

1.可视化显示页面的凑集

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

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

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

5.用Java或Javascript开拓自定义的爬虫

详细先容可见>>>

三、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的优先级,这样就可以优先爬行我们感兴趣或主要的网页 可记录断点时程序的状态,一边重新启动时可接着上次连续爬行。

四、Arale

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

五、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/

六、spindle

spindle是一个构建在Lucene工具包之上的Web索引/搜索工具.它包括一个用于创建索引的HTTP spider和一个用于搜索这些索引的搜索类。
spindle项目供应了一组JSP标签库使得那些基于JSP的站点不须要开拓任何Java类就能够增加搜索功能。

七、Arachnid

Arachnid是一个基于Java的web spider框架.它包含一个大略的HTML阐发器能够剖析包含HTML内容的输入流.通过实现Arachnid的子类就能够开拓一个大略的Web spiders并能够在Web站上的每个页面被解析之后增加几行代码调用。
Arachnid的下载包中包含两个spider运用程序例子用于演示如何利用该框架。

该项目主页: http://arachnid.sourceforge.net/

八、LARM

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

该项目主页: http://larm.sourceforge.net/

九、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

十二、ItSucks

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

功能特性:

多线程

正则表达式

保存/载入的下载事情

在线帮助

HTTP/HTTPS 支持

HTTP 代理 支持

HTTP身份验证

Cookie 支持

可配置的User Agent

连接限定

配置HTTP相应代码的行为

带脱期制

Gzip压缩

该项目主页: http://itsucks.sourceforge.net/

十三、Smart and Simple Web Crawler

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

十四、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

十五、Ex-Crawler

Ex-Crawler 是一个网页爬虫,采取 Java 开拓,该项目分成两部分,一个是守护进程,其余一个是灵巧可配置的 Web 爬虫。
利用数据库存储网页信息。

Ex-Crawler分成三部分(Crawler Daemon,Gui Client和Web搜索引擎),这三部分组合起来将成为一个灵巧和强大的爬虫和搜索引擎。
个中Web搜索引擎部分采取PHP开拓,并包含一个内容管理系统CMS用于掩护搜索引擎。

该项目主页: http://ex-crawler.sourceforge.net/joomla/

十六、Crawler

Crawler是一个大略的Web爬虫。
它让你不用编写呆板,随意马虎出错的代码,而只专注于所须要抓取网站的构造。
此外它还非常易于利用。

该项目主页: http://projetos.vidageek.net/crawler/crawler/

十七、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

十八、Crawljax

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

收录韶光:2011-05-18 09:50:32

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

开源地址: https://github.com/crawljax/crawljax

标签:

相关文章

执业药师试卷代码解码药师职业发展之路

执业药师在药品质量管理、用药安全等方面发挥着越来越重要的作用。而执业药师考试,作为进入药师行业的重要门槛,其试卷代码更是成为了药师...

PHP教程 2025-02-18 阅读1 评论0

心灵代码主题曲唤醒灵魂深处的共鸣

音乐,作为一种独特的艺术形式,自古以来就承载着人类情感的表达与传递。心灵代码主题曲,以其独特的旋律和歌词,唤醒了无数人的灵魂深处,...

PHP教程 2025-02-18 阅读1 评论0

探寻福建各市车牌代码背后的文化内涵

福建省,地处我国东南沿海,拥有悠久的历史和丰富的文化底蕴。在这片充满魅力的土地上,诞生了许多具有代表性的城市,每个城市都有自己独特...

PHP教程 2025-02-18 阅读1 评论0

探寻河北唐山历史与现代交融的城市之光

河北省唐山市,一座地处渤海之滨,拥有悠久历史和独特文化的城市。这里既是古丝绸之路的起点,也是中国近代工业的发源地。如今,唐山正以崭...

PHP教程 2025-02-18 阅读1 评论0