java爬虫抓取网页数据(19款Java开源Web爬虫需要的小伙伴们赶快收藏吧)
优采云 发布时间: 2021-10-26 23:02java爬虫抓取网页数据(19款Java开源Web爬虫需要的小伙伴们赶快收藏吧)
网络爬虫(也称为网络蜘蛛、网络机器人,在 FOAF 社区中,更常见的是网络追逐)是按照某些规则自动抓取万维网上信息的程序或脚本。其他不太常用的名称是蚂蚁、自动索引、模拟器或蠕虫。
今天给大家介绍19款Java开源网络爬虫,有需要的赶紧采集吧。
一、Heritrix
Heritrix 是一个由java开发的开源网络爬虫。用户可以使用它从互联网上获取他们想要的资源。它最突出的特点是良好的扩展性,方便用户实现自己的爬取逻辑。
Heritrix 是一个“档案爬虫”——获取网站内容的完整、准确、深层副本。包括获取图片等非文字内容。抓取并存储相关内容。不拒绝任何内容,不对页面进行任何内容修改。重新抓取不会替换同一 URL 的前一次抓取。爬虫主要通过Web用户界面启动、监控和调整,可以灵活定义获取URL。
Heritrix 是一个多线程爬取的爬虫。主线程将任务分配给 Teo 线程(处理线程),每个 Teo 线程一次处理一个 URL。Teo 线程为每个 URL 执行 URL 处理器链。URL 处理器链包括以下五个处理步骤。
(1)预取链:主要做一些准备工作,比如延迟和重新处理处理,否决后续操作。
(2) 提取链:主要是下载网页,进行DNS转换,填写请求和响应表。
(3) 提取链:提取完成后,提取感兴趣的 HTML 和 JavaScript,通常会有新的 URL 需要爬取。
(4)写链:存储爬取的结果,这一步可以直接索引全文。Heritrix提供了一个ARCWriterProcessor实现,将下载结果保存为ARC格式。
(5)提交链:对这个URL相关的操作做最后的处理。检查哪些新提取的URL在爬取范围内,然后将这些URL提交给Frontier。另外,DNS缓存信息也会更新。
Heritrix 系统框架图
Heritrix 处理一个 url 进程
二、WebSPHINX
WebSPHINX 是 Java 类包和网络爬虫的交互式开发环境。网络爬虫(也称为机器人或蜘蛛)是可以自动浏览和处理网页的程序。WebSPHINX由两部分组成:爬虫工作平台和WebSPHINX类包。
WebSPHINX 是 Java 类包和网络爬虫的交互式开发环境。网络爬虫(也称为机器人或蜘蛛)是可以自动浏览和处理网页的程序。WebSPHINX由两部分组成:爬虫工作平台和WebSPHINX类包。
WebSPHINX 目的
1.可视化展示页面集合
2.将页面下载到本地磁盘进行离线浏览
3.将所有页面合并为一个页面进行浏览或打印
4.根据特定规则从页面中提取文本字符串
5.使用Java或Javascript开发自定义爬虫
详细介绍可见>>>
三、WebLech
WebLech 是一个强大的网站下载和镜像工具。支持根据功能需求下载网站,并尽可能模仿标准网页浏览器的行为。WebLech 有功能控制台,使用多线程操作。
WebLech 是一款功能强大的免费开源工具,用于下载和镜像网站。支持根据功能需求下载网站,并尽可能模仿标准网页浏览器的行为。WebLech 有功能控制台,使用多线程操作。
这个爬虫很简单,如果你是初学者,如果你想写一个爬虫,可以作为入门参考。所以我选择从这个爬虫开始我的研究。如果你只是做要求不高的应用,也可以试试。如果你想找到一个强大的,不要在 WebLech 上浪费时间。
项目主页:WebLech URL Spider
特征:
1)开源,免费
2) 代码纯Java编写,可以在任何支持Java的平台上使用
3)支持多线程下载网页
4) 可以维护网页之间的链接信息
5)可配置性强:可以自定义深度优先或宽度优先的抓取网页,带URL过滤器,可以根据需要抓取单个Web服务器、单个目录或抓取整个WWW网络,您可以设置URL的优先级,这样就可以优先抓取我们感兴趣或重要的网页,记录断点时程序的状态,重启时从上次继续抓取。
四、阿拉蕾
Arale 主要是为个人使用而设计的,不像其他爬虫那样专注于页面索引。Arale 可以下载整个网站或网站上的部分资源。Arale 还可以将动态页面映射到静态页面。
五、JSpider
JSpider:是一个完全可配置和可定制的 Web Spider 引擎。可以用它来检查网站错误(内部服务器错误等),网站内外部链接检查,分析网站结构(可以创建网站图),下载整个网站,你也可以写一个JSpider插件来扩展你需要的功能。
Spider 是一个用 Java 实现的 WebSpider。JSpider的执行格式如下:
jspider [URL] [ConfigName]
URL必须加上协议名,如:,否则会报错。如果省略 ConfigName,则采用默认配置。
JSpider的行为具体由配置文件配置,如使用什么插件,结果存储方式等设置在conf\[ConfigName]\目录下。JSpider 的默认配置类型很少,也不是很有用。但是JSpider非常容易扩展,你可以用它来开发强大的网络爬虫和数据分析工具。为此,您需要深入了解JSpider 的原理,然后根据需要开发插件并编写配置文件。
蜘蛛是:
高度可配置和可定制的网络爬虫
在 LGPL 开源许可下开发
100% 纯 Java 实现
您可以将其用于:
检查您的 网站 错误(内部服务器错误,...)
传出或内部链接检查
分析您的 网站 的结构(创建站点地图,...)
下载翻新网站
通过编写JSpider插件实现任何功能。
项目主页:JSpider-开源Web机器人
六、主轴
Spindle 是一个建立在 Lucene 工具包上的 Web 索引/搜索工具。它包括一个用于创建索引的 HTTP 蜘蛛和一个用于搜索这些索引的搜索类。主轴项目提供了一组JSP标签库,让那些基于JSP的站点无需开发任何Java类就可以添加搜索功能。
七、蛛形纲动物
Arachnid 是一个基于 Java 的网络蜘蛛框架。它收录一个简单的 HTML 解析器,可以分析收录 HTML 内容的输入流。通过实现Arachnid子类,可以开发一个简单的Web蜘蛛,可以在每个网站上使用页面解析后,添加几行代码调用。Arachnid 下载包中收录两个蜘蛛应用程序示例,用于演示如何使用该框架。
项目主页:Arachnid Web Spider Framework
八、LARM
LARM 可以为 Jakarta Lucene 搜索引擎框架的用户提供纯 Java 搜索解决方案。它收录索引文件、数据库表和用于索引网站的爬虫的方法。
项目主页:/
九、乔博
JoBo 是一个用于下载整个网站的简单工具。它本质上是一个网络蜘蛛。与其他下载工具相比,它的主要优点是能够自动填写表单(如自动登录)和使用cookies来处理会话。JoBo 还具有灵活的下载规则(如:URL、大小、MIME 类型等)来限制下载。
十、snoics-reptile
1、什么是snoics-reptile?
它是用纯Java开发的,用于捕获网站的图像。可以使用配置文件中提供的URL入口获取所有可以通过浏览器GET获取的网站 的所有资源都是本地抓取的,包括网页和各种类型的文件,比如图片, flash、mp3、zip、rar、exe等文件。整个网站可以完全转移到硬盘上,保持原有的网站结构准确不变。只需将捕获到的网站放入Web服务器(如Apache)即可实现完整的网站镜像。
2、既然还有其他类似的软件,为什么还要开发snooics-reptile呢?
由于一些文件在爬取过程中经常出现错误,很多javascript控制的URL无法正确解析,snoics-reptile对外提供了接口和配置文件,可以传递特殊的URL。自由扩展外部提供的接口,通过配置文件注入的方式,基本上可以正确解析和抓取所有网页。
项目主页:淡蓝色轨迹...
十一、Web-Harvest
Web-Harvest 是一个 Java 开源 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。
项目主页:Web-Harvest Project Home Pagenet
十个二、烂透了
ItSucks 是一个开源的 Java 网络爬虫项目。可灵活定制,支持下载模板和正则表达式定义下载规则。提供控制台和 Swing GUI 操作界面。
特征:
项目主页:ItSucks
十三、智能简单的网络爬虫
Smart and Simple Web Crawler 是一个网络爬虫框架。集成 Lucene 支持。爬虫可以从单个链接或一组链接开始,提供两种遍历方式:最大迭代和最大深度。您可以设置过滤器来限制爬回的链接。默认提供了三个过滤器 ServerFilter、BeginningPathFilter 和 RegularExpressionFilter。这三个过滤器可以与 AND、OR 和 NOT 组合使用。可以在解析过程中或页面加载前后添加侦听器。
十四、Crawler4j
crawler4j 是一个用 Java 实现的开源网络爬虫。提供简单易用的界面,您可以在几分钟内创建一个多线程的网络爬虫。
crawler4j的使用主要分为两步:
实现一个继承自WebCrawler的爬虫类;通过调用 CrawlController 实现的爬虫类。
WebCrawler 是一个抽象类,继承它必须实现两个方法:shouldVisit 和visit。在:
shouldVisit 是判断当前的 URL 是否应该被爬取(访问);
访问是抓取URL指向的页面的数据,传入的参数是网页所有数据的封装对象Page。
此外,WebCrawler 还有一些其他的方法可以覆盖,其方法命名规则与Android 的命名规则类似。比如getMyLocalData方法可以返回WebCrawler中的数据;onBeforeExit 方法会在 WebCrawler 运行结束前被调用,可以执行一些资源释放等任务。
执照