java从网页抓取数据(19款Java开源Web爬虫需要的小伙伴们赶快收藏吧)

优采云 发布时间: 2021-12-26 23:13

  java从网页抓取数据(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 上浪费时间。

  项目主页:

  特征:

  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插件实现任何功能。

  项目主页:

  六、主轴

  Spindle 是一个建立在 Lucene 工具包上的 Web 索引/搜索工具。它包括一个用于创建索引的 HTTP 蜘蛛和一个用于搜索这些索引的搜索类。Spindle 项目提供了一套JSP 标签库,让那些基于JSP 的站点无需开发任何Java 类就可以添加搜索功能。

  七、蛛形纲动物

  Arachnid 是一个基于 Java 的网络蜘蛛框架。它收录

一个简单的 HTML 解析器,可以分析收录

HTML 内容的输入流。通过实现Arachnid的子类,可以开发一个简单的网络蜘蛛,可以在每个网站上使用页面解析后,添加几行代码调用。Arachnid 下载包中收录

两个蜘蛛应用程序示例,用于演示如何使用该框架。

  项目主页:

  八、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。

  项目主页:

  十个二、真烂

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

  特征:

  项目主页:

  十三、智能简单的网络爬虫

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

  十四、Crawler4j

  crawler4j 是一个用 Java 实现的开源网络爬虫。提供简单易用的界面,您可以在几分钟内创建一个多线程的网络爬虫。

  crawler4j的使用主要分为两步:

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

  Crawl 类通过调用 CrawlController 实现。

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

  shouldVisit 是判断当前的 URL 是否应该被爬取(访问);

  访问是抓取URL指向的页面的数据,传入的参数是网页所有数据的封装对象Page。

  此外,WebCrawler 还有一些其他的方法可以覆盖,其方法命名规则与Android 的命名规则类似。比如getMyLocalData方法可以返回WebCrawler中的数据;onBeforeExit 方法会在WebCrawler 结束前调用,可以执行一些资源释放等任务。

  执照

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线