java爬虫抓取动态网页(19款Java开源Web爬虫需要的小伙伴们赶快收藏吧)
优采云 发布时间: 2021-09-13 18:07java爬虫抓取动态网页(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)Submission chain:对这个URL相关的操作做最后的处理。检查哪些新提取的URL在爬取范围内,然后将这些URL提交给Frontier。另外DNS缓存信息也会更新.
Heritrix 系统框架图
heritrix处理一个url的过程
二、WebSPHINX
WebSPHINX 是 Java 类包和网络爬虫的交互式开发环境。网络爬虫(也称为机器人或蜘蛛)是可以自动浏览和处理网页的程序。 WebSPHINX由爬虫工作平台和WebSPHINX类包两部分组成。
WebSPHINX 是 Java 类包和网络爬虫的交互式开发环境。网络爬虫(也称为机器人或蜘蛛)是可以自动浏览和处理网页的程序。 WebSPHINX由爬虫工作平台和WebSPHINX类包两部分组成。
WebSPHINX 使用
1.Visualization 展示页面合集
2.下载页面到本地磁盘离线浏览
3.将所有页面合并为一个页面进行浏览或打印
4.根据特定规则从页面中提取文本字符串
5.使用 Java 或 Javascript 开发自定义爬虫
详细介绍可见>>>
三、WebLech
WebLech 是一个强大的网站下载和镜像工具。支持根据功能需求下载网站,并尽可能模仿标准网页浏览器的行为。 WebLech 有功能控制台,使用多线程操作。
WebLech 是一个强大的网站下载和镜像免费开源工具。支持根据功能需求下载网站,并尽可能模仿标准网页浏览器的行为。 WebLech 有功能控制台,使用多线程操作。
这个爬虫很简单,如果你是初学者,如果你想写一个爬虫,可以作为入门参考。所以我选择从这个爬虫开始我的研究。如果你只是做要求不高的应用,也可以试试。如果你想找到一个强大的,不要在 WebLech 上浪费时间。
项目主页:
特点:
1)开源,免费
2)代码纯Java编写,可以在任何支持Java的平台上使用
3)支持多线程下载网页
4)可以维护网页之间的链接信息
5) 可配置性强:可以自定义深度优先或宽度优先的抓取网页,带有URL过滤器,这样就可以根据需要抓取单个Web服务器、单个目录或抓取整个WWW网络。 URL 优先,以便首先抓取我们感兴趣或对我们重要的网页。可以记录断点时程序的状态,重新启动时可以从上次继续爬行。
四、Arale
Arale 主要供个人使用,不像其他爬虫那样专注于页面索引。 Arale 可以下载整个网站或网站上的部分资源。 Arale 还可以将动态页面映射到静态页面。
五、JSpider
JSpider:是一个完全可配置和可定制的 Web Spider 引擎。你可以用它来检查网站错误(内部服务器错误等),网站内外链接检查,分析网站的结构(你可以创建一个网站Map),下载整个网站,你也可以写一个JSpider插件来扩展你需要的功能。
Spider 是一个用 Java 实现的 WebSpider。 JSpider的执行格式如下:
jspider [配置名称]
URL中必须加上协议名,如:,否则会报错。如果省略ConfigName,则采用默认配置。
JSpider的行为具体由配置文件配置,比如使用什么插件,结果存储方式等设置在conf\[ConfigName]\目录下。 JSpider的默认配置类型很少,用处不大。但是JSpider非常容易扩展,你可以用它来开发强大的网络爬虫和数据分析工具。为此,您需要深入了解JSpider的原理,然后根据需要开发插件并编写配置文件。
蜘蛛是:
高度可配置和可定制的网络爬虫
在 LGPL 开源许可下开发
100% 纯 Java 实现
您可以使用它:
检查您的网站 错误(内部服务器错误,...)
传出或内部链接检查
分析您的网站 结构(创建站点地图,...)
下载并修复网站
通过编写JSpider插件实现任何功能。
项目主页:
六、spindle
spindle 是一个建立在 Lucene 工具包上的 Web 索引/搜索工具。它包括一个用于创建索引的 HTTP 蜘蛛和一个用于搜索这些索引的搜索类。主轴项目提供了一套JSP标签库,让那些基于JSP的站点无需开发任何Java类即可添加搜索功能。
七、Arachnid
Arachnid 是一个基于 Java 的网络蜘蛛框架。它收录一个简单的 HTML 解析器,可以分析收录 HTML 内容的输入流。通过实现Arachnid子类,就可以开发出一个简单的网络蜘蛛,可以在网站上使用每个页面解析完成后,添加几行代码调用。 Arachnid 下载包中收录两个蜘蛛应用程序示例,用于演示如何使用该框架。
项目主页:
八、LARM
LARM 可为 Jakarta Lucene 搜索引擎框架的用户提供纯 Java 搜索解决方案。它收录索引文件、数据库表和用于索引网站的爬虫的方法。
项目主页:
九、JoBo
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 数据提取工具。它可以[url=https://www.ucaiyun.com/]采集指定的网页并从这些网页中提取有用的数据。 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。
项目主页:net
十二、ItSucks
ItSucks 是 Java 网络爬虫的开源项目。可灵活定制,支持下载模板和正则表达式定义下载规则。提供控制台和Swing GUI操作界面。
特点:
项目主页:
十三、智能简单的网络爬虫
Smart and Simple Web Crawler 是一个网络爬虫框架。集成 Lucene 支持。爬虫可以从单个链接或一组链接开始,提供两种遍历方式:最大迭代和最大深度。您可以设置过滤器来限制爬回的链接。默认提供了三个过滤器 ServerFilter、BeginningPathFilter 和 RegularExpressionFilter。这三个过滤器可以与 AND、OR 和 NOT 组合使用。*敏*感*词*器可以在解析过程中添加,也可以在页面加载前后添加。
十四、Crawler4j
crawler4j 是一个用 Java 实现的开源网络爬虫。提供简单易用的界面,您可以在几分钟内创建一个多线程的网络爬虫。
crawler4j的使用主要分为两步:
实现一个继承自WebCrawler的爬虫类;通过调用 CrawlController 实现的爬虫类。
WebCrawler 是一个抽象类,继承它必须实现两个方法:shouldVisit 和visit。哪里:
shouldVisit是判断当前的URL是否应该被抓取(访问);
visit是抓取URL指向的页面的数据,传入的参数是网页所有数据的封装对象Page。
另外,WebCrawler还有一些其他的方法可以覆盖,其方法的命名规则与Android的命名规则类似。比如getMyLocalData方法可以返回WebCrawler中的数据; onBeforeExit 方法会在 WebCrawler 运行结束前被调用,可以执行一些资源释放等任务。
许可证