当前位置: 首页 > 科技观察

19玩C必用的Java开源网络爬虫

时间:2023-03-12 11:43:43 科技观察

,自动从万维网上抓取信息的程序或脚本。其他不太常用的名称包括ant、autoindex、emulator或worm。今天给大家介绍19款Java开源网络爬虫。需要的朋友赶紧收藏吧。1.HeritrixHeritrix是一款java开发的开源网络爬虫。用户可以使用它从Internet上获取所需的资源。其最突出的特点是具有良好的可扩展性,方便用户实现自己的爬虫逻辑。Heritrix是一个“档案爬虫”——获取网站内容的完整、准确、深度副本。这包括获取图像以及其他非文本内容。获取并存储相关内容。不拒绝内容,不修改页面内容。重新抓取相同的网址不会替换之前的网址。爬虫主要通过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过程2.WebSPHINXWebSPHINX是一个Java类包和网络爬虫的交互式开发环境。网络爬虫(也称为机器人或蜘蛛)是一种自动浏览和处理网页的程序。WebSPHINX由两部分组成:爬虫工作平台和WebSPHINX类包。WebSPHINX是Java类包和网络爬虫的交互式开发环境。网络爬虫(也称为机器人或蜘蛛)是一种自动浏览和处理网页的程序。WebSPHINX由两部分组成:爬虫工作平台和WebSPHINX类包。WebSPHINX–目的1.可视化显示页面集合2.下载页面到本地磁盘以供离线浏览3.将所有页面拼接成单个页面以供浏览或打印4.根据特定规则从页面中提取文本字符串5.使用Java或用于开发自定义爬虫的Javascript。参见>>>3。WebLechWebLech是一个用于下载和镜像网站的强大工具。它支持按需下载网站并尽可能模仿标准网络浏览器的行为。WebLech有一个功能控制台,并使用多线程操作。WebLech是一个强大的开源工具,用于下载和镜像网站。它支持按需下载网站并尽可能模仿标准网络浏览器的行为。WebLech有一个功能控制台,并使用多线程操作。这个爬虫很简单。如果你是初学者,如果你写了一个爬虫,可以作为入门的参考。所以我选择从这个爬虫开始我的研究。如果只是做要求不高的应用,也可以试试。如果您正在寻找功能强大的,请不要在WebLech上浪费时间。项目主页:http://weblech.sourceforge.net/特点:1)开源,免费2)代码纯Java编写,可在任何支持Java的平台上使用3)支持多线程下载网页4)可以维护网页之间的链接信息5)可配置性强:深度优先或广度优先爬取网页可以自定义URL过滤器,使单个Web服务器、单个目录或整个WWW网络都可以按需抓取可以设置URL优先级,这样我们就可以优先抓取我们感兴趣或重要的网页。可以记录下断点时程序的状态,重启时可以从上次继续爬取。4.AraleArale主要是为个人使用而设计的,而不是像其他爬虫一样专注于页面索引。Arale可以下载整个网站或从网站下载某些资源。Arale还可以将动态页面映射到静态页面。五、JSpiderJSpider:是一个完全可配置和可定制的WebSpider引擎。你可以用它来检查网站错误(内部服务器错误等),检查网站的内部和外部链接,分析网站的结构(你可以创建站点地图),下载整个网站,你可以另外写一个JSpider插件,扩展你需要的功能。Spider是一个用Java实现的WebSpider。JSpider的执行格式如下:jspider[URL][ConfigName]URL必须加上协议名,如:http://,否则会报错。如果省略ConfigName,则使用默认配置。JSpider的行为是由配置文件具体配置的,比如使用哪个插件,结果存储方式等,都在conf\[ConfigName]\目录下设置。JSpider默认的配置类型很少,用处不大。但是JSpider非常容易扩展,可以用来开发强大的网络爬虫和数据分析工具。为此,你需要深入了解JSpider的原理,然后根据自己的需要开发插件和编写配置文件。Spider是一个高度可配置和可定制的网络爬虫,在LGPL开源许可下开发,100%纯Java实现。您可以使用它来:检查您的网站是否有错误(内部服务器错误,...)传出或内部链接检查分析您的网站结构(创建站点地图,...)下载并翻新网站以通过编写JSpider实现任何功能插件。项目主页:http://j-spider.sourceforge.net/六、spindlespindle是一个建立在Lucene工具包/search_tools之上的web索引。它包括一个用于创建索引的HTTP蜘蛛和一个用于搜索这些索引的搜索类。spindle项目提供了一套JSP标签库,使得那些基于JSP的站点无需开发任何Java类就可以增加搜索功能。7.ArachnidArachnid是一个基于Java的网络爬虫框架。它包含一个简单的HTML解析器,可以分析包含HTML内容的输入流。通过实现Arachnid的子类,您可以开发一个简单的Web蜘蛛并能够在Web站点上使用它们。在解析每个页面后添加几行代码调用。Arachnid下载包含两个示例蜘蛛应用程序,它们演示了如何使用该框架。项目主页:http://arachnid.sourceforge.net/8.LARMLARM可以为JakartaLucene搜索引擎框架的用户提供一个纯Java的搜索解决方案。它包含索引文件、数据库表和索引网站的爬虫的方法。项目主页:http://larm.sourceforge.net/九、JoBoJoBo是一个简单的工具,用于下载整个网站。它本质上是一个网络蜘蛛。与其他下载工具相比,它的主要优点是可以自动填写表格(例如:自动登录)和使用cookies来处理会话。JoBo还有灵活的下载规则(如:URL、大小、MIME类型等)来限制下载。10.什么是snoics-reptile1和snoics-reptile?纯Java开发,用于抓取网站镜像。你可以使用配置文件中提供的URL入口,通过GET获取本网站所有可用的浏览器,所有通过这种方式获取的资源都是在本地抓取的,包括网页和各种类型的文件,比如图片、flash、mp3、zip、rar、exe等文件。可以将整个网站完整下载到硬盘中,保持原有网站结构准确无误。只需要将抓取的网站放到Web服务器(如Apache)中,即可实现完整的网站镜像。2、既然有其他类似的软件,为什么还要开发snoics-reptile?因为在爬取的过程中经常会出现一些错误的文件,而很多javascript控制的url是没有办法正确解析的,而snoics-reptile对外提供了接口和配置文件。对于特殊的URL,可以自由扩展对外提供的接口,注入配置文件。基本上,它可以正确解析和捕获所有网页。挑选。项目主页:http://www.blogjava.net/snoics11.Web-HarvestWeb-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还提供了变量above和below来存储声明的变量。启动web-harvest可以直接双击jar包运行,但是这种方式无法指定web-harvestjava虚拟机的大小。第二种方法是切换到cmd下的web-harvest目录,输入命令“java-jar-Xms400mwebharvest_all_2.jar”启动,设置java虚拟机大小为400M。项目主页:http://web-harvest.sourceforge.net12.ItSucksItSucks是一个Java网络爬虫开源项目。可灵活定制,支持通过下载模板和正则表达式定义下载规则。提供控制台和SwingGUI操作界面。特点:多线程正则表达式保存/加载下载工作在线帮助HTTP/HTTPS支持HTTP代理支持HTTP认证Cookie支持可配置的UserAgent连接限制配置HTTP响应代码行为带宽限制Gzip压缩项目主页:http://itsucks.sourceforge.net/十三、SmartandSimpleWebCrawlerSmartandSimpleWebCrawler是一个网络爬虫框架。集成的Lucene支持。爬虫可以从单个链接或链接数组开始,提供两种遍历模式:最大迭代次数和最大深度。可以设置过滤器来限制爬回的链接。默认情况下,提供了三个过滤器:ServerFilter、BeginningPathFilter和RegularExpressionFilter。这三个过滤器可以与AND、OR和NOT结合使用。可以在解析过程中或页面加载前后添加监听器。14.Crawler4jcrawler4j是一个用Java实现的开源网络爬虫。提供易于使用的界面,可在几分钟内创建多线程网络爬虫。crawler4j的使用主要分为两步:实现一个继承自WebCrawler的爬虫类;通过调用CrawlController实现一个爬虫类。WebCrawler是一个抽象类,继承它必须实现两个方法:shouldVisit和visit。其中:shouldVisit是判断当前URL是否应该被抓取(访问);visit是爬取url指向的页面的数据,传入的参数是网页所有数据的封装对象Page。另外,WebCrawler还有其他方法可以重写,其方法命名规则与Android的命名规则类似。比如getMyLocalData方法可以返回WebCrawler中的数据;onBeforeExit方法会在WebCrawler结束前被调用,可以进行一些资源释放等工作。LicensingCopyright(c)2010-2015YasserGanjisaffar根据ApacheLicense2.0发布开源地址:https://github.com/yasserg/crawler4j15.Ex-CrawlerEx-Crawler是一个用Java开发的网络爬虫。该项目分为两部分,一部分是守护进程,另一部分是灵活可配置的网络爬虫。使用数据库来存储网页信息。Ex-Crawler分为三个部分(CrawlerDaemon、GuiClient和WebSearchEngine),这三个部分的组合将成为一个灵活而强大的爬虫和搜索引擎。其中,Web搜索引擎部分采用PHP开发,包含了维护搜索引擎的内容管理系统CMS。项目主页:http://ex-crawler.sourceforge.net/joomla/十六、CrawlerCrawler是一个简单的网络爬虫。它将您从编写枯燥、容易出错的代码中解放出来,而只专注于您需要爬取的站点的结构。此外,它非常易于使用。项目主页:http://projetos.vidageek.net/crawler/crawler/十七、EncogEncog是一个高级神经网络和机器人/爬虫开发库。Encog提供的这两个功能可以单独使用来创建神经网络或HTTP机器人,Encog也支持联合使用这两个高级功能。Encog支持创建前馈神经网络、Hopfield神经网络和自组织图。Encog提供高级HTTP机器人/爬虫编程功能。支持将多线程爬虫产生的内容存储在内存或数据库中。支持HTM解析和高级表单和cookie处理。Encog是一个高级机器学习框架,支持各种高级算法,并支持规范化和处理数据的类。支持支持向量机、人工神经网络、遗传规划、贝叶斯网络、隐马尔可夫模型、遗传规划和遗传算法等机器学习算法。大多数Encog训练算法都是多线程的,并且可以很好地扩展到多核硬件。Encog还可以使用GPU进一步加快处理时间。还提供了一个基于GUI的工作台,以帮助建模和训练机器学习算法。Encog从2008年开始积极开发。Encog支持多种语言,包括C#Java和C。各种语言版本的源代码可以在GitHub上找到。http://www.heatonresearch.com/encoghttps://github.com/encog第十八、CrawljaxCrawljax是一个开源的Java工具,用于自动爬取和测试AjaxWeb应用。Crawljax能够通过触发事件和在表单中填充数据来抓取/抓取任何基于Ajax的Web应用程序。采集时间:2011-05-1809:50:32项目主页:http://crawljax.com/开源地址:https://github.com/crawljax/crawljax