各大主流编程语言常用爬虫框架以及优劣分析
拥抱趋势 专业优化 快速打造能赚钱的网站
马上咨询
2016-07-26 09:44:53阅读:447来源:seo优化公司作者:企业互联
[导语]为您推荐文章《各大主流编程语言常用爬虫框架以及优劣分析》(本文主要讲述:3、php爬虫框架3。这些规则还可在Scrapy中使用,用于抓取页面。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,** 新版本又提供了web2。1、DotnetSpider链接地址:DotnetSpider这是国人开源的一个跨平台、高性能、轻量级的爬虫软件,采用C#开发。NET(C#)开发的专门为解析xHTML源码的DLL组件......)如果你对文章有兴趣,欢迎关注我们
本文对447人有所帮助,共有2676个文字,预计阅读所需时间7分钟

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

  目前市场上爬虫框架有很多,不同语言不同类型的爬虫框架都有,然而在开发预研的时候对于选择那种

  框架对于很多开发者来说尤为头疼;

  本篇主要总结一下市场上主流的开发语言中有哪些主流的爬虫框架,以及爬虫框架的优劣;希望在对你在选择合适爬虫框架中有所帮助。

  一、主流语言爬虫框架列表:

  二、主流爬虫框架简介

  1、Java爬虫框架

  1.1、Apache Nutch2

  链接地址:nutch.apache.org

  Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。

  Nutch 致力于让每个人能很容易, 同时花费很少就可以配置世界一流的Web搜索引擎. 为了完成这一宏伟的目标, Nutch必须能够做到:

  * 每个月取几十亿网页

  * 为这些网页维护一个索引

  * 对索引文件进行每秒上千次的搜索

  Ⅰ、对索引文件进行每秒上千次的搜索

  Ⅱ、提供高质量的搜索结果

  简单来说Nutch支持分布式,可以通过配置网站地址、规则、以及采集的深度(通用爬虫或全网爬虫)对网站进行采集,并提供了全文检索功能,可以对采集下来的海量数据进行全文检索;假如您想完成对站点所有内容进行采集,且不在乎采集和解析精度(不对特定页面特定字段内容采集)的需求,建议你使用Apache Nutch,假如您想对站点的指定内容板块指定字段采集,建议您使用垂直爬虫较为灵活。

  1.2、webmgaic(推荐)

  链接地址:webmagic.io

  WebMagic是一个简单灵活的Java爬虫框架。基于WebMagic,你可以快速开发出一个**、易维护的爬虫。

  特性:简单的API,可快速上手;模块化的结构,可轻松扩展;提供多线程和分布式支持

  1.3、Heritrix

  链接地址:crawler.archive.org

  Heritrix 是一个由 java 开发的、开源的网络爬虫,用户可以使用它来从网上抓取想要的资源。其** 出色之处在于它良好的可扩展性,方便用户实现自己的抓取逻辑。

  1.4、WebCollector

  链接地址:github.com/CrawlScript/WebCollector

  WebCollector是一个无须配置、便于二次开发的JAVA爬虫框架(内核),它提供精简的的API,只需少量代码即可实现一个功能强大的爬虫。WebCollector-Hadoop是WebCollector的Hadoop版本,支持分布式爬取。

  1.5、crawler4j

  链接地址::github.com/yasserg/crawler4j

  crawler4j是一款基于Java的轻量级单机开源爬虫框架,** 大的一个特点就是简单。另外也支持多线程、支持代理、可以过滤重复URL

  基本上从加载jar到工程里面 通过修改示例的代码就可以简单的实现一个爬虫的全部功能,而这一切动作加起来都不需要超过半个小时。

  1.6、Spiderman

  链接地址:m.gitee.com/l-weiwei/spIDerman

  Spiderman 是一个Java开源Web数据抽取工具。它能够收集指定的Web页面并从这些页面中提取有用的数据。 Spiderman主要是运用了像XPath、正则、表达式引擎等这些技术来实现数据抽取。

  1.7、eimiCrawler

  链接地址:seimi.wanghaomiao.cn

  一个敏捷的,独立部署的,支持分布式的Java爬虫框架;

  SeimiCrawler是一个强大的,**敏捷的,支持分布式的爬虫开发框架,希望能在** 大程度上降低新手开发一个可用性高且性能不差的爬虫系统的门槛,以及提升开发爬虫系统的开发效率。在SeimiCrawler的世界里,绝大多数人只需关心去写抓取的业务逻辑就够了,其余的Seimi帮你搞定。设计思想上SeimiCrawler受Python的爬虫框架Scrapy启发很大,同时融合了Java语言本身特点与Spring的特性,并希望在国内更方便且普遍的使用更有效率的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开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。

  Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,** 新版本又提供了web2.0爬虫的支持。

  Scrap,是碎片的意思,这个Python的爬虫框架叫Scrapy。

  2.2、Crawley

  链接地址:project.crawley-cloud.com

  高速爬取对应网站的内容,支持关系和非关系数据库,数据可以导出为JSON、XML等

  2.3、Portia

  链接地址:scrapinghub.com/portia

  Portia 是一个用 Python 编写无需任何编程知识,就能可视爬取网站数据的开源工具。无需下载或安装任何东西,因为,Portia 是运行在您的 Web 浏览器中。

  Portia 是 scrapyhub 开源的一款可视化爬虫规则编写工具。Portia 提供了可视化的 Web 页面,只需通过简单点击,标注页面上需提取的相应数据,无需任何编程知识即可完成爬取规则的开发。这些规则还可在 Scrapy 中使用,用于抓取页面。

  2.4、PySpider

  链接地址:

  PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI。采用Python语言编写,分布式架构,支持多种数据库后端,强大的WebUI支持脚本编辑器,任务监视器,项目管理器以及结果查看器。

  2.5、grab

  链接地址:

  网络爬虫框架(基于pycurl/multicur)。

  2.6、cola

  链接地址:ithub.com/chineking/cola

  一个分布式爬虫框架。项目整体设计有点糟,模块间耦合度较高,不过值得借鉴。

  3、php爬虫框架

  3.1、phpspider

  链接地址:github.com/owner888/phpspider

  phpspider是一个爬虫开发框架。使用本框架,你不用了解爬虫的底层技术实现,爬虫被网站屏蔽、有些网站需要登录或验证码识别才能爬取等问题。简单几行PHP代码,就可以创建自己的爬虫,利用框架封装的多进程Worker类库,代码更简洁,执行效率更高速度更快。

  3.2、Beanbun

  链接地址:

  Beanbun 是用 PHP 编写的多进程网络爬虫框架,具有良好的开放性、高可扩展性。

  支持守护进程与普通两种模式(守护进程模式只支持 Linux 服务器)

  默认使用 Guzzle 进行爬取

  支持分布式

  支持内存、Redis 等多种队列方式

  支持自定义URI过滤

  支持广度优先和深度优先两种爬取方式

  遵循 PSR-4 标准

  爬取网页分为多步,每步均支持自定义动作(如添加代理、修改 user-agent 等)

  灵活的扩展机制,可方便的为框架制作插件:自定义队列、自定义爬取方式…

  3.3、PHPCrawl

  链接地址:phpcrawl.cuab.de

  PHPCrawl是一个PHP开源的Web检索蜘蛛(爬虫)类库。PHPCrawl抓取工具“ Spider ”的网站,并提供一切有关网页,链接,文件等信息。

  PHPCrawl povides可以选择性的指定的爬虫的行为,比如喜欢网址、内容类型,过滤器、 cookie的处理等方式。

  4、c#爬虫框架

  4.1、DotnetSpider

  链接地址:

  DotnetSpider这是国人开源的一个跨平台、高性能、轻量级的爬虫软件,采用 C# 开发。目前是.Net开源爬虫** 为很好的爬虫之一。

  4.2、NWebCrawler

  链接地址:nwebcrawler.codeplex.com

  NWebCrawler是一款开源的C#网络爬虫程序更多NWebCrawler

  4.3、SmartSpider

  链接地址:

  SmartSpider爬虫引擎内核版,全新的设计理念,真正的极简版本。

  4.4、Abot

  链接地址:github.com/sjdirect/abot

  Abot是一个开源的.net爬虫,速度快,易于使用和扩展。

  4.5、xNet

  链接地址:github.com/X-rus/xNet

  这个一个俄国牛人写的开源工具,为啥说他强悍了,因为他将所有HTTP协议的底层都实现了一遍,这有啥好处?只要你是写爬虫的,都会遇到一个让人抓狂的问题,就是明明知道自己http请求头跟浏览器一模一样了,为啥还会获取不到自己想要的数据。这时你如果使用HttpWebReaquest,你只能调试到GetRespone,底层的字节流是调试不到了。所以必须得有个更深入的底层组件,方便自己调试。

  4.6、AngleSharp

  链接地址:anglesharp.github.io

  解析HTML利器AngleSharp介绍解析HTML利器AngleSharp介绍AngleSharp是基于.NET(C#)开发的专门为解析xHTML源码的DLL组件。

  4.7、HtmlAgilityPack

  链接地址:htmlagilitypack.codeplex.com

  HtmlAgilityPack 是 .NET 下的一个 HTML 解析类库。支持用 XPath 来解析 HTML 。命名空间: HtmlAgilityPack

  4.8、CSQuery

  链接地址:github.com/jamietre/CsQuery

  CsQuery 犀利的html代码分析库,像jq一样用c#处理html

  5、C/C++爬虫框架

  open-source-search-engine

  链接地址:github.com/gigablast/open-source-search-engine

  基于C/C++开发的网络爬虫和搜索引擎.

  5.1、Cobweb

  链接地址:github.com/stewartmckee/cobweb

  非常灵活,易于扩展的网络爬虫,可以单点部署使用.

  5.2、upton

  链接地址:github.com/propublica/upton

  一个易于上手的爬虫框架集合,支持CSS选择器.

  5.3、wombat

  链接地址:github.com/felipecsl/wombat

  基于Ruby天然的支持DSL的网络爬虫,易于提取网页正文数据.

  5.4、Spidr

  链接地址:github.com/postmodern/spidr

  全站数据采集,支持无限的网站链接地址采集.

  5.5、Larbin

  链接地址:larbin.sourceforge.net/download.html

  larbin是一种开源的网络爬虫/网络蜘蛛,由法国的年轻人Sébastien Ailleret独立开发,用c++语言实现。larbin目的是能够跟踪页面的url进行扩展的抓取,** 后为搜索引擎提供广泛的数据来源。 Larbin只是一个爬虫,也就是说larbin只抓取网页,至于如何parse的事情则由用户自己完成。另外,如何存储到数据库以及建立索引的事情 larbin也不提供。

  larbin** 初的设计也是依据设计简单但是高度可配置性的原则,因此我们可以看到,一个简单的larbin的爬虫可以每天获取500万的网页,实在是非常**。

  利用larbin,我们可以轻易的获取/确定单个网站的所有联结,甚至可以镜像一个网站;也可以用它建立url 列表群,例如针对所有的网页进行 url retrive后,进行xml的联结的获取。或者是 mp3,或者定制larbin,可以作为搜索引擎的信息的来源。

如何优化:
北京集团网站建设 网站开发合同 企业网站多长时间改版合适 阳江网站开发 设计交易网站 重庆少儿编程网站开发 在线ui设计网站 建德网站改版 网站开发案例分享 网站开发综合实训作业4
总访问数:49227938 文章总数:13698 建站天数:3387
相关阅读
01
做网站必须备案吗
  ICP备案网站系统查询地址:这个系统通常我们不能使用,因为我们提交的信息是直接向域名商人,域名商家提交信息给我们备案,所以我们只给域名的名称为我们备案的名称。有必要建立一个备案的网站吗?这并不是必然的,如果你使用美国、香港、韩国等其他空间商人可以避免备案,这是很多选择美国、香港空间的原因,避免了太多的时间浪费。可能要半个月到一个月。有必要建立一个备案的网站吗?这并不是必然的,如果你使用美国、香港、......[详情查看]
02
新网站如何搜索引擎优化和布局?
  让网站能满足客户需要,赢得客户的口碑,大家可以换位思考,站在访客的角度上去思考怎么去合理的布局和设计。一、为网站选择合适的关键词选择关键词的方法大家应该都是知道的,可以使用一个词也可以使用长尾词,如果是难度比较大的词,其实选择做长尾词是不错的选择。四、网站内容seo我们在网站上更新的文章要有可读性要强还要有价值,吸引潜在的客户去看,不要怕写了好文章被竞争对手抄袭,他们也只能模仿,没有办法超越。一、......[详情查看]
03
文章原创的“真谛”优化seo师入门误区
  作为优化站长,或者优化入门级seo师,多多少少从同行当中了解到:优化内容的原创度!决定网站质量类似的话题!文章原创成为站长** 大的痛点也是难点,虽然大有坚持的人,但是效果一样“难产”!很多站长觉得:每天坚持做优化原创内容,文章收录没过多变化,关键词排名没过多变化,权重也没有得到提升!那么网站内容更新,其中原理何在?这是一个内容为王的时代,但并不是原创为王的时代,在同样的节奏下......[详情查看]
04
有效的处理垃圾外链收录过多的解决办法
  3、页面的标题描述不符合网页输出的链接,比如说小松为了给博客发外链,就在地方论坛中发了一个关于美食的帖子,并在这个美食帖子中添加了自己博客的链接,那么,搜索引擎通过这个帖子来到我的网站上,发现网站内容并不是关于美食的,那么,这个链接就会被认为是垃圾外链。那么垃圾外链到底是什么呢,对网站有什么影响呢?一、什么是垃圾外链垃圾链接是人为通过工具,一些群发软件,大量的把链接地址发布到与网站不相关的平台站点......[详情查看]
05
seo培训移动站点开发的预防措施!
  开始围绕用户需求进行写作,这是相关的。除了选择高质量的服务器外,还必须注意网站图片的使用和网站js代码的使用。3。注意网站内容的更新频率,培养蜘蛛对网站的友好度,并帮助改善网站内容的包容性。除了选择高质量的服务器外,还必须注意网站图片的使用和网站js代码的使用......[详情查看]
06
历史搜索缓存植入和新媒体标题
  搜索引擎将跟踪用户** 终引发百度搜索词,并记录这个词,当用户的二次搜索,查询数据库后端脚本语言,所以搜索缓存seo,然后返回到前面,浏览器本身也可以搜索历史记录的形式c网站优化seoookie存储在本地。南方周末,他的追求小说流行的一篇论文显示新闻的深度,我认为这是非常难得的事,是我心里的** 高标准的内容,质量好,而且平易近人,我在微博上与著名机构首席投资官撕裂力,对经典的书你想被制成电影,没有标准答......[详情查看]
07
提升百度网站排名站长需要如何做?
  关键词和长尾关键词的布局主要关键词是网站的核心关键词,可以是您的商业名称、产品名称和区域产品名称等。如果你看到这样的页面,你会打电话吗?我们可以放置一些户外活动、年度会议,并介绍相关产品的优势,进一步反映企业网站的价值。我们现在该怎么办?1。网站的长期排名如果一个好的网站想要一个长期的排名,就不可能通过更新内容来保持网站的长期排名。由于一些中小企业没有专门的seo网站优化人员,许多企业网站都是空壳......[详情查看]
08
网络推广站外seo一个寂寞的存在
  如今的seo环境,在移动互联网大潮下,不是更难了,而是相对好了一些,更少,很多大型网站随着网民的迁移,日访问量都呈下降趋势,甚至连发广告的都少了,不能不说,小广告的多少和热度成正比的,只可惜,没有小广告热度这个指数。2、论坛签名、发帖带些关键词和链接——行业相关论坛、站长论坛3、通过分类信息推广——58同城、赶集网、百姓网、今题网、易登网、列表网、百业网、久久信息网、城市分类信息网、中华企业录、马......[详情查看]