[爬虫语言]各大主流编程语言常用爬虫框架以及优劣分析

  • A+
所属分类:SEO优化

目前,市场上有很多爬虫框架,不同语言的爬虫框架有不同类型。然而,在开展前期研究时,要选择什么样的爬虫框架
对于许多开发人员来说,这个框架尤其令人头疼。
本文主要总结了市场上主流开发语言中的主流爬虫框架及其优缺点。我希望这将有助于你选择一个合适的爬虫框架。
一、主流语言爬虫框架列表:

二.主流爬虫框架介绍
1.java crawler框架

1.1、apache nutch2
链接地址:nutch.apache.org
Nutch是一个开源java实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的所有工具。包括全文搜索和网络爬虫。
Nutch致力于让每个人都能以低成本轻松配置世界级的网络搜索引擎。为了实现这一宏伟目标,nutch必须能够:
*每月获取数十亿个网页
*维护这些网页的索引
*每秒搜索索引文件数千次
一、每秒搜索索引文件数千次
二.提供高质量的搜索结果
简单地说,nutch支持分发。它可以通过配置网站地址、规则和收集深度(通用爬虫或全网爬虫)来收集网站。它还提供全文检索功能,可以对收集到的海量数据进行全文检索。如果您想要完成网站所有内容的收集,并且不关心收集和分析的准确性(不收集特定页面上特定字段的内容),建议您使用apache nutch。如果您想要收集网站指定内容部分的指定字段,建议您使用垂直爬网程序以更加灵活。
1.2 .webmgaic(推荐)
链接地址:webmagic.io
Webmagic是一个简单灵活的java爬虫框架。基于webmagic,您可以快速开发一个高效且易于维护的爬虫。
特点:简单的api,快速入门;模块化结构,易于扩展;提供多线程和分布式支持
1.3、heritrix
链接地址:crawler.archive.org
Heritrix是java开发的开源网络爬虫。用户可以用它从网上获取想要的资源。它最大的优点是具有良好的扩展性,便于用户实现自己的抓取逻辑。
1.4、网络收集器
链接地址:github.com/crawlscript/webcollector
Webcollector是一个java crawler框架(内核),不需要配置,便于二次开发。它提供了一个简化的api,只需少量代码就能实现强大的爬虫。Webcollector-hadoop是Webcollector的hadoop版本,支持分布式爬网。
1.5、crawler4j
链接地址::github.com/yasserg/crawler4j
Crawler4j是一个基于java的轻量级独立开源Crawler框架,它最大的特点是简单。此外,它还支持多线程,支持代理,并可以过滤重复的网址。
基本上,爬虫的所有功能都可以简单地通过修改从加载jar到项目中的示例代码来实现,并且所有的动作不需要超过半个小时。
1.6、蜘蛛侠
链接地址:m.gitee.com/l-weiwei/spiderman
蜘蛛侠是一个java开源网络数据提取工具。它可以收集指定的网页,并从这些网页中提取有用的数据。蜘蛛侠主要使用xpath、正则和表达式引擎等技术来实现数据提取。
1.7、eimicrawler
链接地址:seimi.wanghaomiao.cn
敏捷、独立部署的分布式java crawler框架;
Seimicrawler是一个强大、高效和敏捷的框架,支持分布式爬虫开发。希望能降低新手开发者开发高可用性、高性能爬虫系统的门槛,提高爬虫系统的开发效率。在seimicrawler的世界中,绝大多数人只需要关心编写捕获的业务逻辑。seimi的其他人会帮你的。Seimicrawler的灵感来自python的crawler框架scrapy,它结合了java语言和spring的特性。seimicrawler希望在中国使用更方便、更高效的xpath来解析html。因此,SeimicRawler的默认html解析器是jsoupxpath,html数据的默认解析和提取是使用xpath完成的(当然,数据处理也可以自己选择其他解析器)。
1.8、jsoup
链接地址:jsoup.org
Jsoup是一个java html解析器,可以直接解析url地址和html文本内容。它提供了一个非常省力的api,可以通过dom、css和类似jquery的操作来检索和操作数据。
2.python爬虫框架

2.1 .scrapy(推荐)
链接地址:scrapy.org
Scrapy是python开发的一个快速、高级的屏幕捕获和网络捕获框架,用于捕获网站和从页面中提取结构化数据。Scrapy广泛用于数据挖掘、监控和自动化测试。
使scrapy具有吸引力的是,它是一个任何人都可以根据自己的需要轻松修改的框架。它还为各种类型的爬网程序提供基类,例如basespider和sitemap爬网程序。最新版本还支持web2.0爬网程序。
废料,也就是碎片,是python的爬虫框架,叫做scrapy。
2.2、克劳利
链接地址:project.crawley-cloud.com
相应网站内容的高速爬行支持关系和非关系数据库,数据可以导出为json、xml等。
2.3、波西亚
链接地址:scrapinghub.com/portia
Portia是一个用python编写的开源工具,可以在没有任何编程知识的情况下可视化地抓取网站数据。没有必要下载或安装任何东西,因为portia正在您的网络浏览器中运行。
Portia是用于scrapyhub的开源可视化爬虫规则编写工具。Portia提供了一个可视化的网页,它可以通过简单的点击来标记页面上要提取的相应数据,并且可以在没有任何编程知识的情况下完成爬行规则的开发。这些规则也可以用来抓取页面。
2.4、pyspider
链接地址:www.pyspider.cn
Pyspider:一个强大的网络爬虫系统,由中国人用强大的网络用户界面编写。用python语言编写的分布式体系结构支持多个数据库后端,强大的webui支持脚本编辑器、任务监视器、项目管理器和结果查看器。
2.5、抓住
链接地址:www . im scripting . ninja/post/introduction-grab-framework-python-web scripting/
网络爬虫框架(基于pycurl/multicur)。
2.6、可乐
链接地址:ithub.com/chineking/cola
分布式爬虫框架。项目总体设计稍差,模块间耦合度高,但值得学习。
3.php爬虫框架

3.1、phpspider
链接地址:github.com/owner888/phpspider
Phpspider是一个爬虫开发框架。使用这个框架,您不需要知道爬虫的底层技术实现,爬虫被网站阻止,一些网站需要登录或识别验证码才能爬行。用几行简单的php代码,你可以创建你自己的爬虫。使用框架封装的多进程工作类库,代码更简单,执行效率更高,速度更快。
3.2、豆包
链接地址:www.beanbun.org/#/
Beanbun是一个用php编写的多进程网络爬虫框架,具有良好的开放性和高可扩展性。
守护进程和正常模式都受支持(守护进程模式仅支持linux服务器)
在默认情况下,“老虎”用于爬行
支持分发
支持内存、redis和其他排队方法
支持自定义uri过滤
支持广度优先和深度优先爬行方法
遵循psr-4标准
抓取网页分为多个步骤,每个步骤都支持自定义操作(如添加代理、修改用户代理等)。)
灵活的扩展机制可以很容易地为框架制作插件:自定义队列和自定义爬行方法
3.3、phpcrawl
链接地址:phpcrawl.cuab.de
Phpcrawl是一个php开源网络搜索蜘蛛(crawler)类库。Phpcrawl抓取工具蜘蛛的网站,并提供关于网页、链接、文件等的所有信息。
Phpcrawl povides可以选择性地指定爬网程序的行为,例如喜欢网站的方式、内容类型、过滤器、cookie处理等。
4.c#爬虫框架

4.1、dotnetspider
链接地址:www.dotnetspider.com
Dotnetspider是一款跨平台、高性能、轻量级的爬虫软件,由中国人使用c#开发。目前,它是最好的之一。net开源爬虫。
4.2、nwebcrawler
链接地址:nwebcrawler.codeplex.com
Nwebcrawler是一个开源的c# web crawler。更多nwebcrawler
4.3、智能蜘蛛
链接地址:www . softpedia . com/get/internet/download-manager/smart spider . shtml
智能蜘蛛爬虫引擎内核版,新的设计理念,真正的最低版本。
4.4、abot
链接地址:github.com/sjdirect/abot
Abot是一个开源软件。网络爬虫,速度快,易于使用和扩展。
4.5、xnet
链接地址:github.com/x-rus/xnet
为什么一只俄罗斯母牛写的这个开源工具说他很坚强,因为他已经实现了所有http协议的底层。有什么好处?只要你写一个爬虫,你就会遇到一个令人恼火的问题,也就是说,当你知道你的http请求头和你的浏览器完全一样时,为什么你不能得到你想要的数据。此时,如果使用httpwebreaquest,则只能调试getrespone,而底层字节流无法调试。因此,有必要有一个更深层次的底层组件来促进调试。
4.6、anglesharp
链接地址:anglesharp.github.io
Anglesharp是解析html的利器,它引入了解析html的利器anglesharp。anglesharp是一个基于。net(c#)专门为解析xhtml源代码而开发的。
4.7、htmlagilitypack
链接地址:htmlagilitypack.codeplex.com
Htmlagilitypack是。net。Xpath支持解析html。命名空: htmlagilitypack
4.8、csquery
链接地址:github.com/jamietre/csquery
Csquery的锐利html代码分析库使用c#来处理像jq这样的html
5.c/c++爬虫框架

开源搜索引擎
链接地址:github.com/gigablast/open-source-search-engine
基于c/c++的网络爬虫和搜索引擎。
5.1、蛛网
链接地址:github.com/stewartmckee/cobweb
网络爬虫非常灵活,易于扩展,可以在一个点部署和使用。
5.2、厄普顿
链接地址:github.com/propublica/upton
一个易于使用的爬虫框架集合,支持css选择器。
5.3、袋熊
链接地址:github.com/felipecsl/wombat
基于Ruby的自然dsl网络爬虫很容易提取网页文本数据。
5.4、spidr
链接地址:github.com/postmodern/spidr
全站数据采集支持无限制的网站链接地址采集。
5.5、larbin
链接地址:larbin.sourceforge.net/download.html
拉宾(Larbin)是一个开源的网络爬虫/蜘蛛,由年轻的法国人bastien ailleret独立开发,用c++实现。Larbin的目标是能够跟踪网页的url进行扩展爬行,并最终为搜索引擎提供广泛的数据源。Larbin只是一个爬虫,也就是说,larbin只抓取网页,而用户完成如何解析的任务。此外,larbin没有提供关于如何存储和索引数据库的信息。
Larbin的最初设计也是基于简单设计但可配置性高的原则,所以我们可以看到一个简单的larbin爬虫每天可以获得500万个网页,非常高效。
使用larbin,我们可以很容易地获得/确定一个网站的所有链接,甚至镜像一个网站。它也可以用来建立网址列表组,例如,在对所有网页进行网址检索后,就获得了xml连接。或者mp3,或者定制的larbin,可以作为搜索引擎的信息源。

胖虎SEO博客

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: