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

优采云 发布时间: 2021-09-13 18:07

  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)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 运行结束前被调用,可以执行一些资源释放等任务。

  许可证

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线