各大主流编程语言常用爬虫框架以及优劣分析
拥抱趋势 专业优化 快速打造能赚钱的网站
马上咨询
2016-07-26 09:44:53阅读:228来源:seo优化公司作者:企业互联
[导语]智唯网络为你推荐文章《各大主流编程语言常用爬虫框架以及优劣分析》(本文主要讲述:1。4、PySpider链接地址:PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI。Nutch致力于让每个人能很容易,同时花费很少就可以配置世界一流的Web搜索引擎。目前市场上爬虫框架有很多,不同语言不同类型的爬虫框架都有,然而在开发预研的时候对于选择那种框架对于很多开发者来说尤为头疼;本篇主要总结一下市场上主流的开发语言中有哪些主流的爬虫框架,以及爬虫框架的优劣;希望在对......)如果你对文章有兴趣,欢迎关注我们
本文对228人有所帮助,共有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,可以作为搜索引擎的信息的来源。

如何优化:
1.做网站优化需要懂什么技术? 2.如何对目标关键词进行优化 3.长尾关键词的重要性 4.优化网站结构代码 5.简述URL的作用和规范 6.什么样的优质友链才具备传递权重效果 7.常用的SEO工具有哪些 8.做专业网站优化要从细节做起
总访问数:39194558 文章总数:9967 建站天数:2677
相关阅读
01
外链相册的认识
  而是通过一些外链相册向别的商家所购买,这样可以有效降低自己的成本。但是显然供房他提供的图片并不会那么的好看,这会严重影响到自己的商品销量。这些免费的相册可能在有的时候还会引起纠纷,所以要尽量不要去选择。外链相册的认识现在大家都会选择在淘宝上面进行购物,因为淘宝商城的物价会更加的便宜一些,而且物流也比较方便。大家通过选择自己的商品都会进行浏览图片,但是在淘宝上面这些图片有的时候并不是商家自己提供的......[详情查看]
02
建站中百度引流怎样才能利用好
  百度贴吧的整体活跃度就目前来说可能只屈居于微信和微博之下。照片引流技术虽然不常用,但是引流效果却不错。首发加引流,定要记住,原创文章的首发一定要在自己的网站上。评论法,评论法与文章无关,大多数是直接性的硬广告式的推广。因为是小站点,或许不能快速地排在首页,但是可以通过投稿等方式进行传播......[详情查看]
03
SEO技术 如何seo广告文字广告?
  5%。使用GoogleAdWords对话国内的经验从2004年开始使用Adword,并选择了关键字seo网站优化网页的title用于告诉用户和搜索引擎这个网页的主要内容是什么,而且当用户在百度网页搜索中搜索到你的网页时,title会作为** 重要的内容显示在摘要中。seo包括seo内容和关键字,使广告更具针对性。后来,一些过于宽泛的关键词(如点击率)非常低,而谷歌(Google)则建议删除点击率不能令......[详情查看]
04
答疑解惑优化关于快照常见问题的解析
  不过具体情况还要具体分析,如果你的网站是擦边球,或者是黑站,那么快照回档并不是什么好事,因为与之而来的必然是首页被K,可以继续淡定做站的也只针对遵纪守法的白帽站长。不过具体情况还要具体分析,如果你的网站是擦边球,或者是黑站,那么快照回档并不是什么好事,因为与之而来的必然是首页被K,可以继续淡定做站的也只针对遵纪守法的白帽站长。起初,我做天速互联也会遇到过这种情况,一晚上的时间,首页快站直接回到了三......[详情查看]
05
一份好的优化方案是这么诞生的
  说到竞争对手,一些优化er都是先着重分析他们的侧重点,包括他们站点中的代码书写,标签部署等等都是我们需要分析借鉴的重点之一,比如在上面我们说到的关键词分析统计,就可以在竞争对手方面下足够的功夫来统计,看看他们部署了哪些词汇,在他们的站点中是怎样部署其他标签的,包括整站做了哪些seo等等都是我们可以借鉴学习的地方,以此来丰富完善我们自己的网站。说到竞争对手,一些优化er都是先着重分析他们的侧重点,包......[详情查看]
06
seo中关于关键词的内部竞争怎么避免?
  seo中怎么避免关键词的内部竞争?想要解决这个问题,首先要了解什么是关键词的内部竞争,通俗点说就是多个页面seo同一个关键词,当然我这里指的是次一级的关键词或者长尾关键词,核心关键词多个页面出现是正常的,比如首页的关键词锚文本。接着把对应的URL地址也记录下来,它们是对应的关系,一个长尾关键词对应一个URL,这样就能很好规避关键词的内部竞争,只有在文章自然提到其他文章时,才加上链接导向。网站需要大......[详情查看]
07
教你如何推广百度文库?
  用户通过百度搜索,文库排名相当靠前,只要用户搜索我们上传的文件,就可以达到排水的效果,而且还属于精准的流程,将带来变革。2、文档内容百度库中的信息非常重要。文章** 好是原创或假原创,切勿抄袭到百度或百度体验。** 好的方法是引导用户搜索网站品牌词,如第一步表示,如果用户数据下载的需求,然后我们可以添加的文章:“XXX股票官方网络提供了一个2016年股市预测,“需求的用户看到这个,肯定会去搜索。2-4页可......[详情查看]
08
手把手教你SEO快排技术是怎么操作的
  我觉得从影响收录的影响来说,前面2点影响** 大,也就是网站权重的影响。听到这里,我们知道了一这些网站是站群,二这些站群的内容都说不上有质量。这一点小编找了多加所谓7天排名的专家测验过,就算7天没有完结,那么他会持续和你说,他们正在尽力做排名,请稍加等候,假如没有做到排名,他们不会发现,所以你能够定心,许多人觉得7天没上排名,再等几天也没什么大工作,因而持续等候。如果是在新站周期内,你再加什么蜘蛛池也......[详情查看]