隔壁老王都找我要的33款开源爬虫框架,《记得收藏哦!不然看着看着就不见了》

Posted 苏州程序大白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了隔壁老王都找我要的33款开源爬虫框架,《记得收藏哦!不然看着看着就不见了》相关的知识,希望对你有一定的参考价值。

🏳️‍🌈目录

很多人一提到爬虫,就会想到Python语言。其实不仅仅只有Python才能写爬虫,其他语言也有非常优秀的爬虫框架。今天苏州程序大白我推荐给大家这33款爬虫开源框架!看懂这些框架以后对你们来说 😊So easy

😊开讲啦!!!!
在这里插入图片描述

JAVA爬虫

😉1、 Arachnid

Arachnid是一个基于Java的web spider框架.它包含一个简单的html剖析器能够分析包含HTML内容的输入流.通过实现Arachnid的子类就能够开发一个简单的Web spiders并能够在Web站上的每个页面被解析之后增加几行代码调用。Arachnid的下载包中包含两个spider应用程序例子用于演示如何使用该框架。

许可证:GPL

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

🖥 项目主页:http://arachnid.sourceforge.net/

🖋 下载地址:https://sourceforge.net/projects/arachnid/

😉2、crawlzilla

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

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

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

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

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

操作系统:Linux

授权协议:Apache License 2

开发语言:Java JavaScript SHELL

特点:安装简易,拥有中文分词功能

🖥 项目主页: https://github.com/shunfa/crawlzilla
🖋 下载地址: http://sourceforge.net/projects/crawlzilla/

😉3、Ex-Crawler

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

开发语言:Java

授权协议:GPLv3

操作系统:跨平台

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

🖥 项目主页:http://ex-crawler.sourceforge.net/joomla/
🖋下载地址:https://sourceforge.net/projects/ex-crawler/

😉4、Heritrix

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

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

开发语言:Java

授权协议:Apache

操作系统: 跨平台

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

🖥 项目主页:https://webarchive.jira.com/wiki/spaces/Heritrix/overview

🖋下载地址:https://github.com/internetarchive/heritrix3

😉 5、heyDr

heyDr是一款基于java的轻量级开源多线程垂直检索爬虫框架,遵循GNU GPL V3协议。
用户可以通过heyDr构建自己的垂直资源爬虫,用于搭建垂直搜索引擎前期的数据准备。

开发语言:Java

授权协议:GPLv3

操作系统:跨平台

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

🖥 项目主页:https://code.google.com/archive/p/heydr/

🖋下载地址:https://github.com/tonimoeckel/heydresden

😉6、ItSucks

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

开发语言:Java

特点:提供swing GUI操作界面

🖥 项目主页:http://itsucks.sourceforge.net/

🖋下载地址:https://sourceforge.net/projects/itsucks/

😉7、jcrawl

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

开发语言:Java

操作系统:跨平台

授权协议:Apache

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

🖥 项目主页:https://code.google.com/archive/p/jcrawl/

🖋下载地址:https://github.com/danielfsousa/jcrawler

😉8、JSpider

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

jspider [URL] [ConfigName]

URL一定要加上协议名称,如:http://,否则会报错。如果省掉ConfigName,则采用默认配置。

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

开发语言:Java

授权协议:LGPL

操作系统:跨平台

特点:功能强大,容易扩展

🖥 项目主页:http://j-spider.sourceforge.net/

🖋项目下载:http://j-spider.sourceforge.net/quick/download.html

😉9、Leopdo

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

开发语言:Java

授权协议:Apache

操作系统:跨平台

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

🖥 项目主页:https://sourceforge.net/projects/leopdo/

🖋项目下载:https://sourceforge.net/projects/leopdo/files/

😉10、MetaSeeker

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

网络爬虫有多种实现方法,如果按照部署在哪里分,可以分成:

  • 服务器侧:

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

  • 客户端:

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

MetaSeeker中的网络爬虫就属于后者。

MetaSeeker工具包利用Mozilla平台的能力,只要是Firefox看到的东西,它都能提取。

开发语言:Java

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

🖥 项目主页:http://www.gooseeker.com/

🖋项目下载:http://www.gooseeker.com/pro/gooseeker.html

😉11、Playfish

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论坛的内容。

授权协议:MIT

开发语言:Java

操作系统:跨平台

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

🖥 项目主页:http://playfish.lofteicom/

🖋 项目下载:http://www.oschina.net/p/playfish

😉12、Spiderman

在这里插入图片描述

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

怎么使用?

首先,确定好你的目标网站以及目标网页(即某一类你想要获取数据的网页,例如网易新闻的新闻页面)然后,打开目标页面,分析页面的HTML结构,得到你想要数据的XPath,具体XPath怎么获取请看下文。

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

开发语言:Java

操作系统:跨平台

授权协议:Apache

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

🖥 项目主页:https://gitee.com/l-weiwei/spiderman

🖋 项目下载:https://gitee.com/l-weiwei/spiderman

😉13、webmagic

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

在这里插入图片描述
webmagic采用完全模块化的设计,功能覆盖整个爬虫的生命周期(链接提取、页面下载、内容抽取、持久化),支持多线程抓取,分布式抓取,并支持自动重试、自定义UA/cookie等功能。
在这里插入图片描述
webmagic包含强大的页面抽取功能,开发者可以便捷的使用css selector、xpath和正则表达式进行链接和内容的提取,支持多个选择器链式调用。

开发语言:Java

授权协议:Apache

操作系统:跨平台

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

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

🖥 项目主页:http://webmagic.io/docs/

🖋 项目下载:http://git.oschina.net/flashsword20/webmagic

😉14、Web-Harvest

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

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

开发语言:Java

授权协议:BSD

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

🖥 项目主页:http://web-harvest.sourceforge.net/

🖋 项目下载:http://web-harvest.sourceforge.net/download.php

😉15、WebSPHINX

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

开发语言:Java

授权协议:Apache

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

🖥 项目主页:http://www.cs.cmu.edu/~rcm/websphinx/

🖋 项目下载:http://www.cs.cmu.edu/~rcm/websphinx/#download

😉16、YaCy

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

授权协议:GPL

操作系统:跨平台

开发语言:Java Perl

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

🖥 项目主页:https://www.yacy.net/

🖋 项目下载:https://github.com/yacy/yacy_search_server

😉17、Web Crawler

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

授权协议:LGPL

开发语言:Java

操作系统:跨平台

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

🖥 项目主页:https://github.com/zhk0603/WebCrawler

🖋 项目下载:https://github.com/zhk0603/WebCrawler

Python爬虫

😃1、QuickRecon

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

授权协议:GPLv3

开发语言:Python

操作系统:Windows Linux

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

🖥 项目主页:https://pypi.org/project/quickrecon/

🖋 项目下载:https://code.activestate.com/pypm/quickrecon/在这里插入图片描述

😃2、PyRailgun

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

授权协议:MIT

开发语言:Python

操作系统:跨平台 Windows Linux OS X

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

❤️‍🔥备注:此软件也是由国人开放

🖥 项目主页:https://pypi.org/project/pyrailgun/

🖋 项目下载:https://pypi.org/project/pyrailgun/#files

😃19、Scrapy

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

授权协议:BSD

开发语言:Python

操作系统:跨平台

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

🖥 项目主页:https://scrapy.org/

🖋 项目下载:https://github.com/scrapy/scrapy

C++爬虫

😀1、hispider

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

特征和用法: