c爬虫抓取网页数据(主流爬虫框架简介-1.地址 )
优采云 发布时间: 2022-02-01 12:27c爬虫抓取网页数据(主流爬虫框架简介-1.地址
)
一、前言
目前市面上的爬虫框架比较多,有不同语言、不同类型的爬虫框架。然而,在开展预研时,很难选择哪一项
框架是许多开发人员特别头疼的问题。
本文主要总结了市面上主流开发语言中的主流爬虫框架,以及爬虫框架的优缺点;希望对大家选择合适的爬虫框架有所帮助。
二、主流语言爬虫框架列表 常用爬虫框架列表 JAVA PYTHON PHP C# C/C++
阿帕奇纳奇2
刮擦
php蜘蛛
点网蜘蛛
开源搜索引擎
网络魔术
克劳利
豆包
网络爬虫
蛛网
赫里特里克斯
波西亚
PHP抓取
智能蜘蛛
阿普顿
网络采集器
PySpider
php硒
阿博特
袋熊
爬虫4j
抓
网络
蜘蛛
蜘蛛侠
可乐
锐角
拉尔宾
SeimiCrawler
蟒蛇硒
HtmlAgilityPack
汤
查询
java硒
htmlunit
三、主流爬虫框架介绍1.Java爬虫框架Apache Nutch2
地址:
Nutch 是一个搜索引擎的开源 Java 实现。它提供了我们运行自己的搜索引擎所需的所有工具。包括全文搜索和网络爬虫。
Nutch 致力于让每个人都能轻松、廉价地配置世界级的网络搜索引擎。为了实现这一雄心勃勃的目标,Nutch 必须能够:
* 每月获取数十亿网页
* 维护这些页面的索引
* 每秒数以千计的索引文件搜索
简而言之,Nutch 支持分发。您可以通过配置网站地址、规则和采集的深度(通用爬虫或全网爬虫)对网站执行采集,并提供完整的-文本搜索功能,可以对来自采集的海量数据进行全文搜索;如果要完成站点所有内容的采集,而不关心采集和解析准确性(不是特定页面来满足特定字段内容采集的需要) ,建议您使用Apache Nutch。如果要为站点的指定内容版块指定字段采集,建议使用垂直爬虫更加灵活。
webmgaic(推荐)
地址:
WebMagic 是一个简单灵活的 Java 爬虫框架。基于WebMagic,您可以快速开发一个高效且易于维护的爬虫。
特征:
快速入门的简单 API
模块化结构,易于扩展
提供多线程和分布式支持
赫里特里克斯
地址:
Heritrix是java开发的开源网络爬虫,用户可以使用它从互联网上爬取想要的资源。它最好的地方在于其良好的扩展性,方便用户实现自己的爬取逻辑。
网络采集器
地址:
WebCollector是一个无需配置,方便二次开发的JAVA爬虫框架(内核)。它提供了精简的API,只需少量代码即可实现强大的爬虫。WebCollector-Hadoop 是支持分布式爬取的 WebCollector 的 Hadoop 版本。
爬虫4j
地址::
crawler4j 是一个基于 Java 的轻量级独立开源爬虫框架,最大的特点之一就是简单。此外,它还支持多线程,支持代理,并且可以过滤重复的URL
基本上,从将jar加载到项目中,只需修改示例代码即可简单实现爬虫的所有功能,所有这些动作不超过半小时。
蜘蛛侠
地址:
Spiderman 是一个 Java 开源 Web 数据提取工具。它能够采集指定的网页并从这些页面中提取有用的数据。Spiderman主要使用XPath、正则表达式、表达式引擎等技术来实现数据提取。
SeimiCrawler
地址:
一个敏捷、独立部署的分布式Java爬虫框架
SeimiCrawler 是一个强大、高效、敏捷的框架,支持分布式爬虫开发。希望能够最大程度的降低新手开发高可用性能好的爬虫系统的门槛,提高爬虫系统开发的开发效率。在 SeimiCrawler 的世界里,大部分人只关心编写爬虫的业务逻辑,剩下的交给 Seimi 来处理。在设计思路上,SeimiCrawler 很大程度上受到了 Python 的爬虫框架 Scrapy 的启发,同时融合了 Java 语言本身的特点和 Spring 的特点,希望在国内使用更高效的 XPath 来更方便、更广泛地解析 HTML,所以SeimiCrawler默认的HTML解析器是JsoupXpath,
汤
地址:
jsoup 是一个 Java HTML 解析器,可以直接解析一个 URL 地址和 HTML 文本内容。它提供了一个非常省力的 API,用于通过 DOM、CSS 和类似 jQuery 的操作方法获取和操作数据。
2.Python爬虫框架scrapy(推荐)
地址:
Scrapy,一个用 Python 开发的快速、高级的屏幕抓取和网页抓取框架,用于抓取网站并从页面中提取结构化数据。Scrapy 用途广泛,可用于数据挖掘、监控和自动化测试。
Scrapy 的吸引力在于它是一个任何人都可以根据自己的需要轻松修改的框架。还提供了各类爬虫的基类,如BaseSpider、站点地图爬虫等。最新版本提供了对web2.0爬虫的支持。
报废意味着碎片化。这个 Python 爬虫框架叫做 Scrapy。
克劳利
地址:
高速爬取网站对应的内容,支持关系型和非关系型数据库,数据可以导出为JSON、XML等。
波西亚
地址:
Portia 是一个用 Python 编写的开源工具,无需任何编程知识即可直观地抓取 网站 数据。无需下载或安装任何东西,因为 Portia 在您的网络浏览器中运行。
Portia 是一个由 scrapyhub 开源的可视化爬虫规则编写工具。Portia 提供了一个可视化的网页,只需在页面上简单的点击并标记相应的待提取数据,无需任何编程知识即可完成爬虫规则的开发。这些规则也可以在 Scrapy 中用于抓取页面。
PySpider
地址:
PySpider:一个强大的网络爬虫系统,由一个中国人编写,具有强大的WebUI。用 Python 语言编写,分布式架构,支持多种数据库后端,强大的 WebUI 支持脚本编辑器、任务监视器、项目管理器和结果查看器。
抓
地址:
网络爬虫框架(基于 pycurl/multicur)。
可乐
地址:
一个分布式爬虫框架。项目整体设计有点差,模块间耦合度高,但值得借鉴。
3.PHP爬虫框架phpspider
地址:
phpspider 是一个爬虫开发框架。使用该框架,无需了解爬虫底层技术实现,爬虫被网站屏蔽,有的网站需要登录或验证码识别才能爬取等。几行PHP代码,可以创建自己的爬虫,使用框架封装的多进程Worker类库,代码更简洁,执行效率更高更快。
豆包
地址:
Beanbun是一个用PHP编写的多进程网络爬虫框架,具有良好的开放性和高扩展性。
支持守护进程和普通模式(守护进程模式只支持Linux服务器)
默认情况下,Guzzle 用于爬行
分散式
支持内存、Redis等多种队列方式
支持自定义URI过滤
支持广度优先和深度优先两种爬取方式
遵循 PSR-4 标准
爬取网页分为多个步骤,每个步骤都支持自定义动作(如添加代理、修改user-agent等)
一种灵活的扩展机制,可以轻松为框架创建插件:自定义队列、自定义爬取方法……
PHP抓取
地址:
PHPCrawl 是一个 PHP 开源网络检索蜘蛛(爬虫)类库。PHPCrawl 爬虫“Spider”的网站,提供有关网页、链接、文件等的所有信息。
PHPCrawl povides 可以选择性地指定爬虫的行为,例如采集的 URL、内容类型、过滤器、cookie 处理等。
4.c#爬虫框架DotnetSpider
地址:
DotnetSpider是中国人开源的一款跨平台、高性能、轻量级的爬虫软件,C#开发。它是目前.Net开源爬虫最好的爬虫之一。
网络爬虫
地址:
NWebCrawler 是一个开源的 C# 网络爬虫更多 NWebCrawler
智能蜘蛛
地址:
SmartSpider爬虫引擎内核版本,全新的设计理念,真正的极简版。
阿博特
地址:
Abot 是一个开源的 .net 爬虫,它快速、易于使用和扩展。
网络
地址:
这个*敏*感*词*天才写的开源工具,为什么说他厉害,因为他又实现了所有Http协议的底层,这有什么好处呢?只要你写一个爬虫,就会遇到一个让人抓狂的问题,就是明知道你的Http请求头和浏览器一模一样,为什么不能得到你想要的数据。这时候如果使用HttpWebRequest,只能调试到GetRespone,无法调试底层字节流。所以,一定要有更深层次的底层组件,方便自己调试。
锐角
地址:
HTML 分析工具 AngleSharp HTML 分析工具简介 AngleSharp 简介 AngleSharp 是一个基于.NET (C#) 开发的专门用于解析xHTML 源代码的DLL 组件。
HtmlAgilityPack
地址:
HtmlAgilityPack 是一个用于 .NET 的 HTML 解析库。支持使用 XPath 解析 HTML。命名空间:HtmlAgilityPack
查询
地址:
CsQuery锐利的html代码分析库,用c#像jq处理html
5.C/C++爬虫框架开源搜索引擎
地址:
基于 C/C++ 的网络爬虫和搜索引擎。
蛛网
地址:
一个非常灵活、易于扩展的网络爬虫,可用作单点部署。
阿普顿
地址:
一组易于使用的爬虫框架,支持 CSS 选择器。
袋熊
地址:
基于 Ruby 支持 DSL 的自然网络爬虫,可以轻松提取网页正文数据。
蜘蛛
地址:
全站数据采集,支持无限网站链接地址采集。
拉尔宾
地址:
larbin 是一个开源的网络爬虫/网络蜘蛛,由法国年轻的 Sébastien Ailleret 独立开发,用 C++ 语言实现。larbin 的目的是能够跟踪页面的 URL 进行扩展爬取,最终为搜索引擎提供广泛的数据源。larbin只是一个爬虫,也就是说larbin只爬网页,怎么解析是用户自己做的。此外,larbin 没有提供如何存储到数据库和建立索引。
larbin最初的设计也是本着设计简单但可配置性高的原则,所以我们可以看到一个简单的larbin爬虫每天可以抓取500万个网页,效率很高。
使用larbin,我们可以轻松获取/确定单个网站的所有链接,甚至可以镜像一个网站;我们也可以用它来创建一个url列表组,例如所有网页的url retrive后,xml链接获取。或者 mp3,或者自定义 larbin,可以作为搜索引擎的信息来源。
四.总结
爬虫框架很多,有兴趣可以自己写一些。我们不需要掌握每一个主流爬虫框架,只需要根据自己的语言编写能力,深入掌握一个爬虫框架即可。大多数爬虫框架的实现方式大致相同。
如果你是 python 开发者,我推荐你学习流行的 scrapy,如果你是 java 开发者,我推荐你学习 webmagic。