33款可用来抓数据的开源爬虫软件工具

优采云 发布时间: 2020-05-07 08:02

  要玩大数据,没有数据如何玩?这里推荐一些33款开源爬虫软件给你们。

  爬虫,即网路爬虫,是一种手动获取网页内容的程序。是搜索引擎的重要组成部份,因此搜索引擎优化很大程度上就是针对爬虫而作出的优化。

  网络爬虫是一个手动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL装入队列,直到满足系统的一定停止条件。聚焦爬虫的工作流程较为复杂,需要按照一定的网页剖析算法过滤与主题无关的链接,保留有用的链接并将其倒入等待抓取的URL队列。然后,它将按照一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统储存,进行一定的剖析、过滤,并构建索引,以便以后的查询和检索;对于聚焦爬虫来说,这一过程所得到的剖析结果还可能对之后的抓取过程给出反馈和指导。

  世界上已然成形的爬虫软件多达上百种,本文对较为著名及常见的开源爬虫软件进行梳理,按开发语言进行汇总。虽然搜索引擎也有爬虫,但本次我汇总的只是爬虫软件,而非小型、复杂的搜索引擎,因为好多兄弟只是想爬取数据,而非营运一个搜索引擎。

  

  Arachnid是一个基于Java的web spider框架.它包含一个简单的HTML剖析器才能剖析包含HTML内容的输入流.通过实现Arachnid的泛型才能够开发一个简单的Web spiders并才能在Web站上的每位页面被解析然后降低几行代码调用。 Arachnid的下载包中包含两个spider应用程序事例用于演示怎么使用该框架。

  特点:微型爬虫框架,含有一个大型HTML解析器

  许可证:GPL

  crawlzilla 是一个帮你轻松构建搜索引擎的自由软件,有了它,你就不用借助商业公司的搜索引擎,也不用再苦恼公司內部网站资料索引的问题。

  由 nutch 专案为核心,并整合更多相关套件,并卡发设计安装与管理UI,让使用者更方便上手。

  crawlzilla 除了爬取基本的 html 外,还能剖析网页上的文件,如( doc、pdf、ppt、ooo、rss )等多种文件格式,让你的搜索引擎不只是网页搜索引擎,而是网站的完整资料索引库。

  拥有英文动词能力,让你的搜索更精准。

  crawlzilla的特色与目标,最主要就是提供使用者一个便捷好用易安裝的搜索平台。

  授权合同: Apache License 2

  开发语言: Java JavaScript SHELL

  操作系统: Linux

  特点:安装简易,拥有英文动词功能

  Ex-Crawler 是一个网页爬虫,采用 Java 开发,该项目分成两部份,一个是守护进程,另外一个是灵活可配置的 Web 爬虫。使用数据库储存网页信息。

  特点:由守护进程执行,使用数据库储存网页信息

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

  Heritrix采用的是模块化的设计,各个模块由一个控制器类(CrawlController类)来协调,控制器是整体的核心。

  代码托管:

  特点:严格遵循robots文件的排除指示和META robots标签

  

  heyDr是一款基于java的轻量级开源多线程垂直检索爬虫框架,遵循GNU GPL V3合同。

  用户可以通过heyDr建立自己的垂直资源爬虫,用于搭建垂直搜索引擎前期的数据打算。

  特点:轻量级开源多线程垂直检索爬虫框架

  ItSucks是一个java web spider(web机器人,爬虫)开源项目。支持通过下载模板和正则表达式来定义下载规则。提供一个swing GUI操作界面。

  特点:提供swing GUI操作界面

  jcrawl是一款精巧性能优良的的web爬虫,它可以从网页抓取各类类型的文件,基于用户定义的符号,比如email,qq.

  特点:轻量、性能优良,可以从网页抓取各类类型的文件

  JSpider是一个用Java实现的WebSpider,JSpider的执行格式如下:

  jspider [ConfigName]

  URL一定要加上合同名称,如:,否则会报错。如果市掉ConfigName,则采用默认配置。

  JSpider 的行为是由配置文件具体配置的,比如采用哪些插件,结果储存方法等等都在conf\[ConfigName]\目录下设置。JSpider默认的配置种类 很少,用途也不大。但是JSpider十分容易扩充,可以借助它开发强悍的网页抓取与数据剖析工具。要做到这种,需要对JSpider的原理有深入的了 解,然后按照自己的需求开发插件,撰写配置文件。

  特点:功能强悍,容易扩充

  用JAVA编撰的web 搜索和爬虫,包括全文和分类垂直搜索,以及动词系统

  特点:包括全文和分类垂直搜索,以及动词系统

  是一套完整的网页内容抓取、格式化、数据集成、存储管理和搜索解决方案。

  网络爬虫有多种实现方式,如果依照布署在哪里分网页爬虫软件,可以分成:

  服务器侧:

  一般是一个多线程程序,同时下载多个目标HTML,可以用PHP, Java, Python(当前太流行)等做,可以速率做得很快,一般综合搜索引擎的爬虫这样做。但是网页爬虫软件,如果对方厌恶爬虫,很可能封掉你的IP,服务器IP又不容易 改,另外耗损的带宽也是很贵的。建议看一下Beautiful soap。

  客户端:

  一般实现定题爬虫,或者是聚焦爬虫,做综合搜索引擎不容易成功,而垂直搜诉或则比价服务或则推荐引擎,相对容易好多,这类爬虫不是哪些页面都 取的,而是只取你关系的页面,而且只取页面上关心的内容,例如提取黄页信息,商品价钱信息,还有提取竞争对手广告信息的,搜一下Spyfu,很有趣。这类 爬虫可以布署好多,而且可以挺有侵略性,对方很难封锁。

  MetaSeeker中的网路爬虫就属于前者。

  MetaSeeker工具包借助Mozilla平台的能力,只要是Firefox见到的东西,它都能提取。

  特点:网页抓取、信息提取、数据抽取工具包,操作简单

  playfish是一个采用java技术,综合应用多个开源java组件实现的网页抓取工具,通过XML配置文件实现高度可定制性与可扩展性的网页抓取工具

  应用开源jar包包括httpclient(内容读取),dom4j(配置文件解析),jericho(html解析),已经在 war包的lib下。

  这个项目目前还挺不成熟,但是功能基本都完成了。要求使用者熟悉XML,熟悉正则表达式。目前通过这个工具可以抓取各种峰会,贴吧,以及各种CMS系统。像Discuz!,phpbb,论坛跟博客的文章,通过本工具都可以轻松抓取。抓取定义完全采用XML,适合Java开发人员使用。

  使用方式:

  下载一侧的.war包导出到eclipse中,使用WebContent/sql下的wcc.sql文件构建一个范例数据库,修改src包下wcc.core的dbConfig.txt,将用户名与密码设置成你自己的mysql用户名密码。然后运行SystemCore,运行时侯会在控制台,无参数会执行默认的example.xml的配置文件,带参数时侯名称为配置文件名。

  系统自带了3个事例,分别为baidu.xml抓取百度知道,example.xml抓取我的javaeye的博客,bbs.xml抓取一个采用 discuz峰会的内容。

  特点:通过XML配置文件实现高度可定制性与可扩展性

  Spiderman 是一个基于微内核+插件式构架的网路蜘蛛,它的目标是通过简单的方式能够将复杂的目标网页信息抓取并解析为自己所须要的业务数据。

  怎么使用?

  首先,确定好你的目标网站以及目标网页(即某一类你想要获取数据的网页,例如网易新闻的新闻页面)

  然后,打开目标页面,分析页面的HTML结构,得到你想要数据的XPath,具体XPath如何获取请看下文。

  最后,在一个xml配置文件里填写好参数,运行Spiderman吧!

  特点:灵活、扩展性强,微内核+插件式构架,通过简单的配置就可以完成数据抓取,无需编撰一句代码

  webmagic的是一个无须配置、便于二次开发的爬虫框架,它提供简单灵活的API,只需少量代码即可实现一个爬虫。

  

  webmagic采用完全模块化的设计,功能覆盖整个爬虫的生命周期(链接提取、页面下载、内容抽取、持久化),支持多线程抓取,分布式抓取,并支持手动重试、自定义UA/cookie等功能。

  

  webmagic包含强悍的页面抽取功能,开发者可以方便的使用css selector、xpath和正则表达式进行链接和内容的提取,支持多个选择器链式调用。

  webmagic的使用文档:

  查看源代码:

  特点:功能覆盖整个爬虫生命周期,使用Xpath和正则表达式进行链接和内容的提取。

  备注:这是一款国产开源软件,由 黄亿华贡献

  Web-Harvest是一个Java开源Web数据抽取工具。它就能搜集指定的Web页面并从这种页面中提取有用的数据。Web-Harvest主要是运用了象XSLT,XQuery,正则表达式等这种技术来实现对text/xml的操作。

  其实现原理是,根据预先定义的配置文件用httpclient获取页面的全部内容(关于httpclient的内容,本博有些文章已介绍),然后运用XPath、XQuery、正则表达式等这种技术来实现对text/xml的内容筛选操作,选取精确的数据。前两年比较火的垂直搜索(比如:酷讯等)也是采用类似的原理实现的。Web-Harvest应用,关键就是理解和定义配置文件,其他的就是考虑如何处理数据的Java代码。当然在爬虫开始前,也可以把Java变量填充到配置文件中,实现动态的配置。

  特点:运用XSLT、XQuery、正则表达式等技术来实现对Text或XML的操作,具有可视化的界面

  WebSPHINX是一个Java类包和Web爬虫的交互式开发环境。Web爬虫(也叫作机器人或蜘蛛)是可以手动浏览与处理Web页面的程序。WebSPHINX由两部份组成:爬虫工作平台和WebSPHINX类包。

  授权合同:Apache

  开发语言:Java

  特点:由两部份组成:爬虫工作平台和WebSPHINX类包

  YaCy基于p2p的分布式Web搜索引擎.同时也是一个Http缓存代理服务器.这个项目是建立基于p2p Web索引网路的一个新技巧.它可以搜索你自己的或全局的索引,也可以Crawl自己的网页或启动分布式Crawling等.

  特点:基于P2P的分布式Web搜索引擎

  QuickRecon是一个简单的信息搜集工具,它可以帮助你查找子域名名称、perform zone transfe、收集电子邮件地址和使用microformats找寻人际关系等。QuickRecon使用python编撰,支持linux和 windows操作系统。

  特点:具有查找子域名名称、收集电子邮件地址并找寻人际关系等功能

  这是一个十分简单易用的抓取工具。支持抓取javascript渲染的页面的简单实用高效的python网页爬虫抓取模块

  特点:简洁、轻量、高效的网页抓取框架

  备注:此软件也是由国人开放

  github下载:

  Scrapy 是一套基于基于Twisted的异步处理框架,纯python实现的爬虫框架,用户只须要订制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各类图片,非常之便捷~

  github源代码:

  特点:基于Twisted的异步处理框架,文档齐全

  HiSpider is a fast and high performance spider with high speed

  严格说只能是一个spider系统的框架, 没有细化需求, 目前只是能提取URL, URL排重, 异步DNS解析, 队列化任务, 支持N机分布式下载, 支持网站定向下载(需要配置hispiderd.ini whitelist).

  特征和用法:

  工作流程:

  授权合同: BSD

  开发语言: C/C++

  操作系统: Linux

  特点:支持多机分布式下载, 支持网站定向下载

  larbin是一种开源的网路爬虫/网路蜘蛛,由美国的年轻人 Sébastien Ailleret独立开发。larbin目的是能否跟踪页面的url进行扩充的抓取,最后为搜索引擎提供广泛的数据来源。Larbin只是一个爬虫,也就 是说larbin只抓取网页,至于怎样parse的事情则由用户自己完成。另外,如何储存到数据库以及完善索引的事情 larbin也不提供。一个简单的larbin的爬虫可以每晚获取500万的网页。

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

  特点:高性能的爬虫软件,只负责抓取不负责解析

  Methabot 是一个经过速率优化的高可配置的 WEB、FTP、本地文件系统的爬虫软件。

  特点:过速率优化、可抓取WEB、FTP及本地文件系统

  源代码:

  NWebCrawler是一款开源,C#开发网路爬虫程序。

  特性:

  授权合同: GPLv2

  开发语言: C#

  操作系统: Windows

  项目主页:

  特点:统计信息、执行过程可视化

  国内第一个针对微博数据的爬虫程序!原名“新浪微博爬虫”。

  登录后,可以指定用户为起点,以该用户的关注人、粉丝为线索,延人脉关系收集用户基本信息、微博数据、评论数据。

  该应用获取的数据可作为科研、与新浪微博相关的研制等的数据支持,但切勿用于商业用途。该应用基于.NET2.0框架,需SQL SERVER作为后台数据库,并提供了针对SQL Server的数据库脚本文件。

  另外,由于新浪微博API的限制,爬取的数据可能不够完整(如获取粉丝数目的限制、获取微博数目的限制等)

  本程序版权归作者所有。你可以免费: 拷贝、分发、呈现和演出当前作品,制作派生作品。 你不可将当前作品用于商业目的。

  5.x版本早已发布! 该版本共有6个后台工作线程:爬取用户基本信息的机器人、爬取用户关系的机器人、爬取用户标签的机器人、爬取微博内容的机器人、爬取微博评论的机器人,以及调节恳求频度的机器人。更高的性能!最大限度挖掘爬虫潜力! 以现今测试的结果看,已经才能满足自用。

  本程序的特征:

  6个后台工作线程,最大限度挖掘爬虫性能潜力!界面上提供参数设置,灵活便捷抛弃app.config配置文件,自己实现配置信息的加密储存,保护数据库账号信息手动调整恳求频度,防止超限,也防止过慢,降低效率任意对爬虫控制,可随时暂停、继续、停止爬虫良好的用户体验

  授权合同: GPLv3

  开发语言: C# .NET

  操作系统: Windows

  spidernet是一个以递归树为模型的多线程web爬虫程序, 支持text/html资源的获取. 可以设定爬行深度, 最大下载字节数限制, 支持gzip解码, 支持以gbk(gb2312)和utf8编码的资源; 存储于sqlite数据文件.

  源码中TODO:标记描述了未完成功能, 希望递交你的代码.

  github源代码:

  特点:以递归树为模型的多线程web爬虫程序,支持以GBK (gb2312)和utf8编码的资源,使用sqlite储存数据

  mart and Simple Web Crawler是一个Web爬虫框架。集成Lucene支持。该爬虫可以从单个链接或一个链接字段开始,提供两种遍历模式:最大迭代和最大深度。可以设置 过滤器限制爬回去的链接,默认提供三个过滤器ServerFilter、BeginningPathFilter和 RegularExpressionFilter,这三个过滤器可用AND、OR和NOT联合。在解析过程或页面加载前后都可以加*敏*感*词*器。介绍内容来自Open-Open

  特点:多线程,支持抓取PDF/DOC/EXCEL等文档来源

  网站数据采集软件 网络矿工[url=https://www.ucaiyun.com/]采集器(原soukey采摘)

  Soukey采摘网站数据采集软件是一款基于.Net平台的开源软件,也是网站数据采集软件类型中惟一一款开源软件。尽管Soukey采摘开源,但并不会影响软件功能的提供,甚至要比一些商用软件的功能还要丰富。

  特点:功能丰富,毫不逊色于商业软件

  OpenWebSpider是一个开源多线程Web Spider(robot:机器人,crawler:爬虫)和包含许多有趣功能的搜索引擎。

  特点:开源多线程网络爬虫,有许多有趣的功能

  29、PhpDig

  PhpDig是一个采用PHP开发的Web爬虫和搜索引擎。通过对动态和静态页面进行索引构建一个词汇表。当搜索查询时,它将按一定的排序规则显示包含关 键字的搜索结果页面。PhpDig包含一个模板系统并才能索引PDF,Word,Excel,和PowerPoint文档。PHPdig适用于专业化更 强、层次更深的个性化搜索引擎,利用它构建针对某一领域的垂直搜索引擎是最好的选择。

  演示:

  特点:具有采集网页内容、提交表单功能

  ThinkUp 是一个可以采集推特,facebook等社交网路数据的社会媒体视角引擎。通过采集个人的社交网络帐号中的数据,对其存档以及处理的交互剖析工具,并将数据图形化便于更直观的查看。

  

  

  github源码:

  特点:采集推特、脸谱等社交网路数据的社会媒体视角引擎,可进行交互剖析并将结果以可视化方式诠释

  微购社会化购物系统是一款基于ThinkPHP框架开发的开源的购物分享系统,同时它也是一套针对站长、开源的的*敏*感*词*网站程序,它整合了天猫、天猫、*敏*感*词*等300多家商品数据采集接口,为广大的*敏*感*词*站长提供傻瓜式淘客建站服务,会HTML都会做程序模板,免费开放下载,是广大淘客站长的首选。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线