五十种最好用的开源爬虫软件

关于7个款来抓数据的开源爬虫软件工具 爬虫:是一种按照一定的规则,自动地抓取万维网,信息的程序或者脚本。使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 阅读详情
AI摘要

网络爬虫可自动化爬取网页数据,推动业务增长。本文按实现语言分类,介绍了Python、Java、JavaScript等多种语言编写的开源Web爬取软件库和工具,如Scrapy、Apache Nutch等,有助于读者实现网站数据的爬取、采集与分析。

网络爬虫是一种自动化程序或脚本,根据设定的数据爬取索引系统地爬取 Web 网页。整个过程称为 Web 数据采集(Crawling)或爬取(Spidering)。

人们通常将用于爬取的工具称为爬虫(Web Spider)、Web 数据抽取软件或 Web 网站采集工具。

当前 Web 爬取应用广受关注,一个重要的原因在于它们从多个方面上推进了业务的加速增长。这些应用非常便于在数据驱动的大环境中使用。它们从多个公开的网站采集信息和内容,并按统一可管理的方式提供。在这些应用的帮助下,我们可以一窥遍布全球的海量信息,例如新闻、社会媒体、图片、文章,甚至是竞争对手的情况。

为更好地采用各种爬取应用,我们需要做好调研,了解各种应用的不同功能和相同特性。我们将在本文中介绍多种不同的开源 Web 爬取软件库和工具。本文有助于读者实现爬取、采集网站数据并分析数据。

我们全面地总结了一些最好的开源 Web 爬取软件库和工具,并按实现语言的不同进行了分类。

需要更多爬虫资料的朋友可以点击下方链接即可获取哦

2023年python零基础入门资料(学习笔记+安装包+训练项目)

Python 编写的开源 Web 爬虫

1. Scrapy

简介

  • Scrapy 是一种高速的高层 Web 爬取和 Web 采集框架,可用于爬取网站页面,并从页面中抽取结构化数据。
  • Scrapy 的用途广泛,适用于从数据挖掘、监控到自动化测试。
  • Scrapy 设计上考虑了从网站抽取特定的信息,它支持使用 CSS 选择器和 XPath 表达式,使开发人员可以聚焦于实现数据抽取。
  • 对于熟悉 Python 的开发人员,只需几分钟就能建立并运行 Scrapy。
  • 支持运行在 Linux、Mac OS 和 Windows 系统上。

特性

  • 内置支持从 HTML 和 XML 抽取数据、使用扩展的 CSS 选择器(Selector)和 XPath 表达式等特性。
  • 支持以多种格式(JSON、CSV、XML)生成输出。
  • 基于 Twisted 构建。
  • 稳健的支持,自动检测编码方式。
  • 快速,功能强大。
  • 官方文档:https://docs.scrapy.org/en/latest/
  • 官方网站:https://scrapy.org/

2. Cola

简介

  • Cola 是一种高层分布式爬取框架,实现从网站爬取网页,并从中抽取结构化数据。
  • 它提供了一种实现目标数据获取的简单且灵活的方式。
  • 用户只需要编写其中一部分代码,就可在本地和分布式环境下运行。

特性

3. Crawley

简介

  • Crawley 是一种 Python 爬取和采集框架,意在简化开发人员从 Web 网页抽取数据到数据库等结构化存储中。

特性

  • 基于 Eventlet 构建的高速 Web 爬虫。
  • 支持 MySQL、PostgreSQL、Oracle、Sqlite 等关系数据库引擎。
  • 支持 MongoDB、CouchDB 等 NoSQL 数据库(最新特性!)。
  • 支持导出数据为 JSON、XML 和 CSV 格式(最新特性!)。
  • 命令行工具。
  • 支持开发人员使用自己喜好的工具,例如 XPath 或 Pyquery(一种类似于 JQuery 的 Python 软件库)等。
  • 支持 Cookie 处理器(Handler)。
  • 官方文档:https://pythonhosted.org/crawley/
  • 官方网站:http://project.crawley-cloud.com/

4. MechanicalSoup

简介

  • MechanicalSoup 是一种设计模拟人类使用 Web 浏览器行为的 Python 软件库,它基于解析软件库 BeautifulSoup 构建。
  • 如果开发人员需要从单个站点采集数据,或是不需要大量数据采集,那么使用 MechanicalSoup 是一种简单高效的方法。
  • MechanicalSoup 自动存储和发送 Cookie、跟踪重定向、支持链接跟随和提交表单。

特性

5. PySpider

简介

  • PySpider 是一种 Python 编写的强大 Web 爬虫。
  • 它支持 JavaScript 网页,并具有分布式架构。
  • PySpider 支持将爬取数据存储在用户选定的后台数据库,包括 MySQL, MongoDB, Redis, SQLite, Elasticsearch 等。
  • 支持开发人员使用 RabbitMQ、Beanstalk 和 Redis 等作为消息队列。

特性

2023年python零基础入门资料(学习笔记+安装包+训练项目)

6. Portia

简介

  • Portia 是由 Scrapinghub 创建的一种可视化爬取工具,它不需要用户具有任何程序开发知识。
  • 如果用户并非开发人员,最好直接使用 Portia 实现 Web 爬取需求。
  • 用户无需任何安装就可免费试用 Portia,只需要在 Scrapinghub 注册一个账户,就可使用托管版本。
  • 即便用户没有编程技能,在 Portia 中创建爬虫并抽取 Web 内容也是非常易于实现的。
  • 用户无需安装任何程序,因为 Portia 是运行在 Web 页面上的。
  • 用户可以使用 Portia 的基本点击工具标注需要爬取的数据,然后 Portia 就会根据这些标注理解如何爬取类似页面中的数据。
  • 一旦检测到需要爬取的页面,Portia 会形成一个用户已创建结构的实例。

特性

7. Beautifulsoup

简介

  • Beautiful Soup 一种设计用于实现 Web 爬取等快速数据获取项目的 Python 软件库。
  • 它在设计上处于 HTML 或 XML 解析器之上,提供用于迭代、搜索和修改解析树等功能的 Python 操作原语。往往能为开发人员节省数小时乃至数天的工作。

特性

8. Spidy 爬虫

简介

  • Spidy 是一种从命令行运行的 Web 爬虫。易于使用。用户只需提供 Web 网页的 URL 链接,Spidy 就可以开始爬取!Spidy 无疑是一种整体爬取 Web 的简单有效的方式。
  • Spidy 使用 Python 请求查询 Web 页面,并使用 lxml 抽取页面中的所有链接。非常简单!

特性

9. Garb

简介

  • Grab 是一种用于构建爬虫的 Python 框架。
  • 使用 Grab 可构建出各种复杂度的 Web 爬虫,从只有五行代码的脚本,到可处理百万量级 Web 页面的复杂异步爬虫。
  • Grab 提供了执行网络请求、处理接收内容的 API。例如,实现与 HTML 文档的 DOM 树进行交互。

特性

  • 支持 HTTP 和 SOCKS 代理,可使用也可不使用认证。
  • 自动字符集检测。
  • 强大的 API,支持使用 XPath 查询从 HTML 文档的 DOM 树中抽取数据。
  • 自动 Cookie(或会话)支持。
  • 官方文档:https://grablib.org/en/latest/
  • 官方网站: https://github.com/lorien/grab

Java 编写的开源 Web 爬虫

10. Apache Nutch

简介

  • Apache Nutch 是一种高度可扩展、可伸缩的开源 Web 爬虫软件项目。
  • 如果要列出最好的开源 Web 爬虫列表,Apache Nutch 无疑金榜题名。
  • 作为一种用于数据挖掘的高度可扩展、可伸缩的开源代码 Web 数据抽取软件项目,Apache Nutch 得到了广泛的使用。
  • Nutch 支持单机运行,但是在 Hadoop 集群上运行可最大化地发挥其强大能力。
  • 全球范围内很多数据分析人员和科研人员、应用开发人员和 Web 文本挖掘工程师都在使用 Apache Nutch。
  • Apache Nutch 是一种 Java 编写的跨平台解决方案。

特性:

  • 默认情况下,爬取数据和分析数据是独立的过程。广泛支持多种文档格式,包括纯文本、HTML/XHTML+XML、XML、PDF、ZIP 等。使用 XPath 和命名空间实现映射。通过 Hadoop 支持分布式文件系统。链接图形式的数据库。支持 NTLM 认证。
  • 官方文档: https://wiki.apache.org/nutch/
  • 官方网站: http://nutch.apache.org/

11. Heritrix

简介:

在使用 Java 编写的免费开源 Web 爬虫中,Heritrix 是其中一种得到广泛使用的工具。事实上,它是一种可扩展、Web 规模、存档质量(archival-quality)的 Web 爬取项目。Heritrix 是一种扩展能力和性能很好的解决方案,支持用户即刻爬取并归档一组网站。此外,它在设计上考虑了 robots.txt 禁止规则和 META 机器人标签。Heritrix 可运行在 Linux/Unix 和 Windows 系统上。

特性:

2023年python零基础入门资料(学习笔记+安装包+训练项目)

12. ACHE 爬虫

简介:

ACHE 是一种专用于特定用途的 Web 爬虫。ACHE 爬取满足特定标准的 Web 页面。例如,属于特定领域并包含用户指定模式的页面。不同于通用爬虫,ACHE 使用页面分类器遴选特定领域中的相关和无关页面。页面分类器可以是基本的正则表达式(例如,匹配所有包含给定单词的页面),也可以基于机器学习的分类模型。ACHE 也可以自动学习如何对链接做优先处理,实现高效地定位相关内容,避免检索无关的页面内容。

特性:

  • 对固定网站列表的正常爬取。通过自动链接优先处理,发现并爬取新的相关网站。可配置不同类型的页面分类器(例如,机器学习、正则表达式等)。持续重新爬取站点,实现页面更新的发现。使用 ElasticSearch 对爬取页面做索引。实时搜索爬取页面的 Web 接口。用于监控爬虫的 REST API 和基于 Web 的用户接口。使用 TOR 代理爬取隐含服务。
  • 官方文档: http://ache.readthedocs.io/en/latest/
  • 官方网站: https://github.com/ViDA-NYU/ache

13. Crawler4j

简介:

14. Gecco

简介:

Gecco 是一种使用 Java 开发的轻量级 Web 爬虫,易于使用。Gecco 集成了 jsoup、httpclient、fastjson、spring、htmlunit、redission 等优秀框架。用户只需要配置一系列 jQuery 风格选择器,就能很快地建立一个爬虫。Gecco 框架具有优秀的扩展能力。框架基于一些开放式和封闭式设计原则,对改进封闭,对扩展开放。

特性:

  • 易于使用,使用 jQuery 风格选择器抽取元素。支持页面中的异步 Ajax 请求。支持页面 JavaScript 变量抽取。使用 Redis 实现分布式爬取(参见 gecco-redis 文档)。支持使用 Spring 开发业务逻辑(参见 gecco-spring 文档)。支持 htmlunit 扩展(参见 gecco-htmlunit 文档)。支持多种扩展机制。支持下载 UserAgent 的随机选择。支持下载代理服务器的随机选取。
  • 官方文档: https://github.com/xtuhcy/gecco
  • 官方网站: https://github.com/xtuhcy/gecco

15. BUbiNG

简介:

BUbiNG 令人惊喜,它可称为下一代的开源 Web 爬虫。BUbiNG 是一种 Java 开发的完全分布式爬虫(无需中央协调),每秒可爬取数千个网页,并支持采集大规模数据集。BUbiNG 的分布式是基于高速协议实现的,因此可以获得非常高的通量。BUbiNG 提供对海量数据的大规模爬取。它完全可配置、易于扩展,并可集成垃圾信息检测。

特性:

16. Narconex

简介:

对于寻求可满足企业级需求的开源 Web 爬虫的用户而言,Narconex 是一种很好的工具。Norconex 支持用户爬取任何 Web 内容。用户可以独立运行这种全功能数据采集器,或是将其集成在自己的应用中。支持所有操作系统。可在具有一般容量的单体服务器上爬取数百万信息。此外,Narconex 提供多种内容和元数据操作特性,还可以抽取页面中特定的图像。

特性:

17. WebSPHINX

  • 实现语言: Java
  • 当前尚不提供官方支持。

简介:

WebSphinix 是一种非常易于使用的可定制 Web 爬虫。它设计用于高级 Web 用户和 Java 编程人员,支持他们自动爬取小部分 Web。WebSphinix 数据抽取解决方案也提供了一种全面的 Java 类库和交互式软件开发环境。WebSphinix 包括两部分:爬虫基准测试(Crawler Workbench),WebSPHINX 类库。爬虫基准测试提供了很好的用户图形接口,支持用户配置并控制定制的 Web 爬虫。WebSPHINX 类库为使用 Java 编写 Web 爬虫提供支持。WebSphinix 支持运行在 Windows、Linux、Mac 和 Android IOS 上。

特性:

18. Spiderman

简介:

Spiderman 是一种 Java 开源 Web 数据抽取工具。它采集特定的 Web 页面,并从中抽取有用数据。Spiderman 主要使用 XPath 和正则表达式等技术抽取实际数据。

特性:

19. WebCollector :

简介:

WebCollector 是一种基于 Java 的开源 Web 爬虫框架。它为实现 Web 爬取功能提供了一下基本的接口。用户可以使用它在五分钟内建立起一个多线程爬虫。

特性:

20. Webmagic

简介:

WebMagic 是一种可扩展的爬虫框架。WebMagic 涵盖了爬虫的整个生命周期,包括下载、URL 管理、内容抽取和持久化。可用于简化一些特定爬虫的开发。

特性:

21. StormCrawler

简介:

StormCrawler 是一种基于 Apache Storm 构架分布式 Web 爬虫的开源 SDK。StormCrawler 为开发人员构建爬虫提供了软件库和一系列资源。StormCrawler 完全适用于以数据流提供需获取和解析的 URL 的情况,也非常适用于大规模递归性爬取,尤其是需要低延迟的情况。

特性:

JavaScript 编写的开源 Web 爬虫

22. NodeCrawler

简介:

NodeCrawler 是一种广为使用的 Web 爬虫,它基于 NodeJS 实现,具有非常快的爬取速度。Nodecrawler 非常适用于偏爱使用 JavaScript 编程或者致力于 JavaScript 项目的开发人员。其安装也非常简单。JSDOM 和 Cheerio(用于 HTML 解析)实现服务器端渲染。其中,JSDOM 更为稳定。

特性:

  • 使用 Cheerio(默认)或 JSDOM 实现服务端 DOM 和自动 jQuery 插入。可配置池子规模和重试次数。控制爬取率限制。请求的优先队列。支持 forceUTF8 模式,使得爬虫可以检测并转换字符集。与 4.x 乃至更新版本兼容。
  • 官方文档:https://github.com/bda-research/node-crawler
  • 官方网站:http://nodecrawler.org/

23. Simplecrawler

简介:

Simplecrawler 设计提供基本的、灵活且稳定的网站爬取 API。Simplecrawler 在实现上考虑了针对特大型 Web 站点的归档、分析和搜索。它可爬取上百万页面,并毫无问题地向磁盘写入数十 GB 数据。

特性:

24. Js-crawler :

简介:

25. Webster

简介:

  • Webster 是一种使用 NodeJS 编写的可靠 Web 爬取和采集框架,用于爬取 Web 站点并从页面中抽取结构化数据。与其他爬取框架的不同之处在于,Webster 可以抓取浏览器客户端的 JavaScript 和 Ajax 请求呈现的内容。
  • 官方文档: http://webster.zhuyingda.com/
  • 官方网站: https://github.com/zhuyingda/webster

26. Node-osmosis

简介:

一种使用 NodeJS 实现的 HTML/XML 解析器和 Web 爬虫。

特性:

  • 使用原生 libxml 的 C 绑定。干净的 Promise 类接口。支持 CSS 3.0 和 XPath 1.0 选择器的混合。Sizzle 选择器、Slick 选择器以及更多。不具有像 jQuery、cheerio 或 jsdom 那样的大型依赖。构成深度和复杂的数据结构。
  • HTML 解析器特性:快速解析;高速搜索;内存占用小。
  • HTML DOM 特性:加载和搜索 ajax 内容;DOM 交互和事件;执行嵌入和远程脚本;在 DOM 中执行代码。
  • HTTP 请求特性:日志记录 URL,重定向和错误;Cookie 的 jar 包,以及自定义 Cookie/ 头部 / 用户代理;登录 / 表单提交、会话 Cookie,基本的认证;单代理、多代理,处理代理失败情况;限制重试和重定向。
  • 官方文档: https://rchipka.github.io/node-osmosis/global.html
  • 官方网站: https://www.npmjs.com/package/osmosis

27. Supercrawler

简介:

Supercrawler 是一种使用 NodeJS 实现的 Web 爬虫,在设计上支持高度可配置和易用性。一旦成功爬取一个网页(可以是图像、文本文档或其他任何文件),Supercrawler 将会触发用户自定义的内容类型(content-type)处理器,处理页面解析、保存数据以及其它一些用户定义的功能。

特性:

  • 链接检测:Supercrawler 会解析所爬取的 HTML 文档,识别其中链接并添加到队列中。
  • 机器人解析:在爬取前 Supercrawler 会请求 robots.txt 并检查其中的禁止规则。它也可识别站点地图。
  • 站点地图解析:Supercrawler 可以从 XML 站点地图文件中读取链接,并将链接添加到队列中。
  • 并发限制:Supercrawler 可限制在任一时间发出的请求数。
  • 速率限制:Supercrawler 可添加请求的时延,以免对服务器产生轰炸。
  • 指数补偿(Exponential backoff)重试:Supercrawler 将依此在一小时、两小时、四小时乃至更多时间后重试请求。要使用该特性,爬取队列必须使用数据库或 Redis 作为后端。
  • 主机名均衡:Supercrawler 可在不同主机名间平均分割请求量。要使用该特性,爬取队列必须以 Redis 为后端。
  • 官方文档: https://github.com/brendonboshell/supercrawler
  • 官方网站: https://github.com/brendonboshell/supercrawler

28. Web scraper 的 Chrome 扩展

简介:

Web Scraper 是一种 Chrome 浏览器扩展,构建用于从 Web 页面抽取数据。用户可以使用该扩展创建计划(站点地图),定义如何遍历一个 Web 网站,以及如何从中抽取数据。Web Scraper 使用站点地图相应地遍历网站,并从中抽取数据。支持以 CSV 格式导出所抽取的数据。

特性:

  • 抽取多个页面。
  • 站点地图和抽取的数据存储在浏览器的本地存储,也可存储在 CouchDB 中。
  • 多种数据类型选取。
  • 支持从动态网页(JavaScript+AJAX)抽取数据。
  • 浏览抽取的数据。
  • 以 CSV 格式导出抽取的数据。
  • 导入、导出站点地图。
  • 只依赖于 Chrome 浏览器。
  • 官方文档: https://www.webscraper.io/documentation
  • 官方网站: https://www.webscraper.io

29. Headless Chrome 爬虫

简介:

使用基本 HTML 文件请求的爬虫,通常速度很快。但这样的爬虫往往会抽取到空白内容,尤其是在爬取使用 AngularJS、React 和 Vue.js 等现代前端框架构建的网站时。

特性:

30. X-ray

特性:

  • 模式灵活:支持字符串、数组、对象以及嵌套对象结构。
  • 模式并非绑定于所抽取的页面结构,支持用户获取选定结构中的数据。
  • 可组合(Composable):API 是完全可组合的,赋予用户抽取每个页面的极大灵活性。
  • 分页支持:爬取页面在 Web 站点上的所有分页。
  • X-ray 还支持请求延迟和分页限制,并支持将爬取页面导入到单个文件中。这样一旦单个页面产生错误,用户不会失去所有已爬取的数据。
  • 爬虫支持:从一个页面开始,轻易跳转另一个页面。页面跳转是可预测的,按深度优先爬取所有页面。
  • 负责任的爬取:X-ray 支持并发、限制、延迟、超时和限制,实现负责任地爬取任何页面。
  • 可插拔驱动:可按用户需求置换不同的爬虫。
  • 官方文档: https://github.com/matthewmueller/x-ray
  • 官方网站: https://www.npmjs.com/package/x-ray-scraper

C 编写的开源 Web 爬虫

31. Httrack

简介:

HTTracks 是一项免费(GPL、Libre/ 自由软件)且易于使用的离线浏览器功能。支持用户将 Web 站点下载到本地目录,递归构建全部目录,以及获取 HTML、图像和其它文件到本地计算机。HTTrack 会维持原站点的相对链接结构。用户可以用浏览器打开本地的“镜像”页面,并逐个链接浏览,与在线浏览无异。HTTrack 也支持对已有镜像站点的更新,以及从中断点恢复下载。HTTrack 高度可配置,并提供帮助文档。

特性:

  • 多语言窗口,提供对 Linux/UNIX 的接口。
  • 镜像单个站点,或是一并镜像多个站点。
  • 支持按文件类型、链接位置、结构深度、文件大小过滤,接受或拒绝站点或文件名。
  • 支持代理,可最大化速度,并可选认证。
  • 官方文档: http://www.httrack.com/html/index.html
  • 官方网站: http://www.httrack.com/

32. GNU Wget

简介:

GNU Wget 是一种免费软件包,它使用 HTTP、HTTPS、FTP、FTPS 等广为使用的互联网协议检索文件。Wget 是一种非交互式命令行工具,易于从脚本、Cron 任务、不具有 X 窗口支持的终端等处调用。

特性:

C++ 编写的开源 Web 爬虫

33. gigablast

简介:

Gigablast 是一种开源的 Web 和企业搜索引擎,也是一种爬虫。Gigablast 是自身维护数十亿页面检索索引的数家美国搜索引擎之一。

特性:

C# 编写的开源 Web 爬虫

34. http://Arachnode.net

简介:

http://Arachnode.net 适用于寻求开源 Web 爬虫的 C# 开发人员。http://Arachnode.net 软件类库从因特网下载内容、对内容做索引,并对过程做定制。用户可使用该工具做个人内容聚合,也可用于将下载的内容抽取、采集和解析为多个表单。http://Arachnode.net 索引所发现的内容,并存储在 http://Lucene.NET 索引中。http://Arachnode.net 非常适用于文本挖掘,也适用于学习高级爬取技术。

特性:

  • 可配置规则和行为。
  • 集成 http://Lucene.NET。
  • 支持 SQL Server 和全文本索引。
  • 支持对.DOC/.PDF/.PPT/.XLS 等文件类型的索引。
  • 支持将 HTML 转化为 XML 和 XHTML。
  • 支持全部 JavaScript/AJAX 功能。
  • 支持多线程和节流 (Throttling)。
  • 行为适当(Respectful)的爬取。
  • 分析服务。
  • 官方文档: https://documentation.arachnode.net/index.html
  • 官方网站: http://arachnode.net/

35. Abot

简介:

Abot 是一种 C# 实现的开源 Web 爬虫,主要侧重于速度和灵活性。Abot 在实现中考虑了底层技术细节,包括多线程、HTTP 请求、调度、链接解析等。用户只需注册事件,就可以处理分页数据。支持用户插入自己的核心接口实现,实现对整个爬取过程的完全控制。

特性:

  • 高速!易于定制(可插拔架构,支持用户定义爬取内容和方式)。
  • 经过大量的单元测试(高代码覆盖率)。
  • 非常轻量级(并非过度工程化)。
  • 无过程之外的依赖,例如对数据库、所安装服务等的依赖。
  • 官方文档: https://github.com/sjdirect/abot
  • 官方网站: https://github.com/sjdirect/abot

36. Hawk

简介:

HAWK 无需用户做任何编程,提供图形可视化数据获取和清理工具,并以 GPL 协议开源。

特性:

  • 无需编程,即可实现对 Web 内容的智能分析。
  • 所见即所得(WYSIWYG),可视化拉拽,支持对数据转换和过滤等的快速处理。
  • 支持从多种数据库和文件中导入和导出。
  • 任务可保存并可重用。
  • 尤其适用于爬取和数据清理,但其功能并不仅局限于此。
  • 官方文档: https://github.com/ferventdesert/Hawk
  • 官方网站: https://ferventdesert.github.io/Hawk/

37. SkyScraper

简介:

.NET 编写的 Web 爬虫

38. DotnetSpider

简介:

PHP 编写的开源 Web 爬虫

39. Goutte

简介:

40. Dom-crawler

简介:

41. Pspider

简介:

42. Php-spider

简介:

一种可配置、可扩展的 Web 爬虫。

特性:

  • 可限制爬取深度、队列大小和最大下载数。
  • 支持基于 XPath、CSS 选择器或普通(Plain old)PHP 添加自定义的 URI 发现逻辑。
  • 提供了一系列有用的 URI 过滤器,例如域限制等。
  • 收集爬取统计信息,用于形成报告。
  • 官方文档: https://github.com/mvdbos/php-spider
  • 官方网站: https://github.com/mvdbos/php-spider

43. Spatie / Crawler

简介:

  • 该软件包提供了从 Web 站点爬取链接的类。
  • 在实现的底层机制上,使用了 GuzzleHttp/Promise 并发爬取多个 URL。
  • 该爬虫支持执行 JavaScript,可以爬取使用 JavaScript 渲染的站点。
  • 从实现的底层机制看,该特性使用了 Chrome 和 Puppeteer。
  • 官方文档: https://github.com/spatie/crawler
  • 官方网站: https://github.com/spatie/crawler

Ruby 实现的开源 Web 爬虫

44. Mechanize

简介:

GO 编写的开源 Web 爬虫

45. Colly

简介:

为 Go 爱好者提供了一种快速且适用的爬取框架。Colly 提供了非常清晰的接口,可用于编写任何类型的爬虫和数据获取工具。Colly 使得用户可以轻易地从站点抽取结构化数据。这些数据适用于大范围的应用,例如数据挖掘、数据处理和归档。

特性:

  • 清晰的 API。
  • 高速(支持单核每秒处理一千次以上的请求)。
  • 按域管理请求延迟和最大并发。
  • 自动 Cookie 和会话管理。
  • 同步 / 异步 / 并行爬取。
  • 支持缓存。
  • 对非 unicode 响应的自动编码。
  • 支持 robots.txt 禁止规则。
  • 分布式爬取。
  • 可通过环境变量配置。
  • 支持扩展。
  • 官方文档: http://go-colly.org/docs/
  • 官方网站: http://go-colly.org/

46. Gopa

特性:

47. Pholcus

简介:

Pholcus 是一种完全使用 Go 语言实现的高并发性、重量级爬虫软件。它针对因特网数据采集,为只具有基本 Go 或 JavaScript 编程基础的用户提供了一种只需要关注自定义功能的特性。规则简单灵活,并发批处理任务,提供丰富的输出方式,包括 MySQL、MongoDB、Kafka、CSV、Exvel 等。用户共享了大量的演示。此外,Pholcus 支持两种水平和垂直爬取模式,支持模拟登陆、暂停任务、取消任务等一系列高级特性。

特性:

R 编写的开源 Web 爬虫

48. Rvest

简介:

Scala 编写的开源 Web 爬虫

49. Sparkler

简介:

Web 爬虫是一种机器人程序,它从 Web 网站采集资源,用于构建搜索引擎、知识库等应用。Sparkler(“Spark-Crawler”的缩写)是一种新型的 Web 爬虫,它通过整合 Spark、Kafka、Lucene/Solr、Tika、pf4j 等多种 Apache 项目,使用了分布式计算和信息检索领域的最新进展。

特性:

Perl 编写的开源 Web 爬虫

50. Web-scraper

简介:

总 结

开源 Web 爬取应用纷繁多样,在此难以一一枚举。每种爬取应用分别各具特长,适用于不同用户的需求。

用户可根据自己的需求和技术要求选取适用的工具。也许用户会从上述工具中做出选择,也许会选择本文列表之外的工具。在实践中,用户只需根据任务的不同做出一个合理的选择,这完全取决于最终用户。其中至关重要的是,用户必须要了解每种工具的独特优势,并利用这些优势服务于用户自身的业务,或是自身所承担的其它任何任务。

欢迎与我们就此开展交流!

【GitHub项目推荐--21个最佳开源网络爬虫库,适合Python、Java、Go、JavaScript开发语言】【转载】 Heritrix是一个基于JAVA的开源爬虫工具,具有高度的可扩展性,并高度尊重robot.txt排除指令和Meta机器人标签,并以自适应速度收集数据,执行稳定性好。这是一个简单、快速的Web爬虫,旨在轻松、快速地发现Web应用程序中的端点和资产。webmagic是一个开源的Java爬虫框架,目标是简化爬虫的开发流程,让开发者专注于逻辑功能的开发。crawler4j是一个开源的Java网络爬虫,它提供了一个简单的接口, 抓取网页使用它,可以在几分钟内设置一个多线程的网络爬虫。 阅读详情

相关推荐

2024 年 11 个最佳开源网络爬虫和抓取工具

2024 年 11 个最佳开源网络爬虫和抓取工具

hongfu951的专栏 2713

12款最常使用的网络爬虫工具推荐

网络爬虫在当今的许多领域得到广泛应用。它的作用是从任何网站获取特定的或更新的数据并存储下来。网络爬虫工具越来越为人所熟知,因为网络爬虫简化并自动化了整个爬取过程,使每个人都可以轻松访问网站数据资源。使用网络爬虫工具可以让人们免于重复打字或复制粘贴,我们可以很轻松的去采集网页上的数据。此外,这些网络爬虫工具可以使用户能够以有条不紊和快速的抓取网页,而无需编程并将数据转换为符合其需求的各种格式。在这篇文章中,我将介绍目前比较流行的20款网络爬虫工具供你参考。希望你能找到最适合你需求的工具。

m0_59162248的博客 2万+

LSF调度实战:如何用bsub命令实现多队列资源抢占与公平调度

本文深入探讨了LSF作业调度系统的高级实战技巧,重点解析如何通过配置`lsb.queues`文件与灵活运用`bsub -R`命令,构建一套兼顾效率与公平的多队列资源抢占与调度体系。文章详细介绍了队列优先级设计、公平共享机制、资源感知调度以及抢占策略的实施,帮助集群管理员解决高优先级任务等待、资源分配不均等常见问题,实现计算资源的精细化管理和高效利用。

vvv99的博客 218

资源推荐 | 五十种最好用的开源爬虫软件

资源推荐 | 五十种最好用的开源爬虫软件

一名正义的白帽黑客 2839

LightTools手动创建菲涅尔透镜的5个实用技巧(附详细步骤图)

本文详细介绍了在LightTools中手动创建菲涅尔透镜的5个核心技巧,包括理解旋转体与折线原理、高效构建多齿轮廓、编辑优化、坐标系定位以及属性设置与验证。通过分步图解和实用策略,帮助用户突破内置工具限制,实现对非标准齿形和复杂光学设计的完全掌控,提升建模精度与仿真效率。

onion的博客 774

UNITY2022 Cardboard环境搭建

必须安装 Git,并且 git 可执行文件必须位于 PATH 环境变量中。考文档:https://developers.google.cn/cardboard/develop/unity/quickstart?转到 Assets/Samples/Google Cardboard//Hello Cardboard/Scenes/HelloCardboard 场景中。粘贴https://github.com/googlevr/cardboard-xr-plugin.git到文本输入字段中。

weixin_39510925的博客 1210

python爬虫 被重定向_50 种最棒的开源爬虫框架/项目

作者:Prowebscraper 博客译者:Rays摘要: 说起爬虫框架,你可能会马上脱口而出:「 Scrapy 或者 Pyspider」,甚至你可能认为只有 Python 才能爬虫。其实还有很多好用的开源爬虫框架,也绝不仅仅只有 Python 才能写爬虫,大多数热门语言都可以做。总之,开源Web爬虫纷繁多样,下面按照所用程语言,罗列五十种最好的开源爬虫框架,每一个各具特长,适用于不同场景和用户需...

weixin_27051161的博客 1432

手把手教你用HI3516CV610搭建智能安防摄像头(附完整开发资料)

本文详细介绍了基于海思HI3516CV610 SOC搭建智能安防摄像头的完整开发流程,包括硬件选型、系统架构设计、开发环境搭建、智能分析功能开发及系统调优。通过实战案例,展示了如何利用内置NPU实现人形检测和异常行为分析,并提供了量产测试方案,帮助开发者快速完成智能摄像头项目。

backprop5master的博客 541

5 个不错的开源 AI 网络爬虫工具

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。如果我的分享对你有帮助,请关注我,一起向上进击。简单地说,网络爬虫就是从网站上抓取数据和内容,然后以 XML、Excel 或 SQL 的形式保存数据。除了潜在客户挖掘、竞争对手监控和市场调研之外,网络爬虫工具还可用于实现数据收集过程的自动化。在人工智能网络爬虫工具的帮助下,可...

codingpy的博客 5524

FreeRTOS移植实战:从零开始在STM32上搭建多任务系统(含Proteus仿真配置)

本文详细介绍了如何在STM32平台上从零开始移植FreeRTOS,并搭建多任务系统,包含Proteus仿真配置。通过环境准备、源码移植、多任务设计到仿真调试的全流程实战,帮助开发者快速掌握FreeRTOS在STM32上的应用技巧,提升嵌入式开发效率。

weixin_33737134的博客 231

【scratch音乐课】天空之城:音符与节拍、消息与链表

scratch是一个非常小巧的青少年编程工具,自带程序编写语句,积木式语句非常直观、易用,可创作数学、科学、音乐、绘画等方面作品。本文用scratch“演奏”一首大家非常熟悉的《天空之城》,并向大家介绍一些基本乐理知识,以及scratch中消息、链表的使用。

★·°立芯;︶︵︶ 1万+

10 个最佳网络爬虫工具和软件(非常详细),零基础入门到精通,看这一篇就够了

10 个最佳网络爬虫工具和软件(非常详细),零基础入门到精通,看这一篇就够了

weixin_51725318的博客 1万+

【数据库】SQL Server 2008 R2 安装全流程详解与常见问题避坑指南

本文详细解析了SQL Server 2008 R2的完整安装流程与核心配置。从安装前的系统兼容性检查、.NET Framework依赖准备,到图文详解实例配置、混合身份验证模式设置等关键步骤,并提供了安装失败、服务无法启动等高频问题的排查与避坑指南,帮助用户顺利完成部署。

java5的博客 1241

2024 年 6 个开源 AI 网页爬虫框架对比评测:功能解读、应用场景分析

常规的爬虫工具没有太多探讨的地方,也没有引入什么新的技术,只不过 LLM 催生的新一代爬虫工具,显著改善了开发者的使用体验,仅需一个 API 即可灵活定制抓取所需内容,极大地提升了便利性。值得注意的是,LLM 驱动的爬虫方案实际上属于 Claude 的“计算机使用”功能的一个分支,例如,微软的 UFO 项目(模拟人操作 Windows 系统电脑)、智谱的 AutoGLM 以及腾讯的 AppAgent(模拟人操作手机)等研究方向,都可能涵盖浏览器操作的功能。

z551646的博客 6321

【Ambari-Metrics监控】Grafana+Infinity快速构建DEMO-实战教学

摘要:本文介绍了如何通过Infinity插件在Grafana中监控Ambari-Metrics(AMS)的CPU核数指标。内容包括配置AMS REST API数据源、创建Dashboard面板、设置JSON解析规则,将时间戳和数值映射为时序数据。最终实现单个节点CPU核数曲线的可视化展示,该方法可扩展至其他AMS指标监控。文章提供了完整的配置示例和API调用验证方法,适用于Grafana 9.x及以上版本对接Ambari集群监控场景。

TTBIGDATA的博客 1351

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

这7款高效爬虫工具&软件,非常实用!

在当今数据驱动的时代,自动化爬虫工具和软件成为了许多企业和个人获取数据的重要手段。这里会介绍6款功能强大、操作简便的自动化爬虫工具,用好了可以更高效地进行数据采集。

分享Python、数据分析、人工智能前沿知识 9295

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

再也不用手写爬虫了!推荐5款自动爬取数据的神器!

网络信息的时代,想要收集信息,爬虫是一项必不可少的工具。对于很多小伙伴们来说,只是想利用爬虫进行快速的内容抓取,而并不想太过深入的学习爬虫。 利用python编写爬虫程序虽然炫酷,但是需要耗费时间和精力去学习。学习成本非常高,有的时候就是为了几页的数据,学了几个月的爬虫,实在是伤不起。

weixin_55154866的博客 6460

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

分享10 个最佳网络爬虫工具和软件

据 Strait Research 称,数据提取的需求正在不断增加,预计到 2031 年将达到 18 亿美元。使用最好的网络爬行工具启动您的数据提取项目,并告别烦人的爬行头痛。我们研究和测试了数百种免费和付费软件,然后为您提出了十种最佳网络爬虫工具。网络爬行是使用软件或自动化脚本从不同网页中提取数据的过程。这些脚本被称为网络爬虫、蜘蛛或网络抓取机器人。

QXXXD的博客 2684

十大免费的Python爬虫APP!再也不用开那么多会员了!

在探讨十大网络爬虫免费App时,需要注意的是,并非所有提到的工具都完全免费或以App形式存在。不过,我可以根据当前可用的信息和市场情况,列出一些广受欢迎且部分功能可能免费的网络爬虫工具或软件,尽管其中一些可能主要是桌面应用或框架。

pythonmadah的博客 1万+

资源推荐 | 九种最好用的开源爬虫软件

Crawley 是一种 Python 爬取和采集框架,意在简化开发人员从 Web 网页抽取数据到数据库等结构化存储中。

大模型教程的博客 6032

什么是爬虫软件?这两个爬虫神器你必须要试试

爬虫,又称为网络爬虫或网页爬虫,是一种自动浏览互联网的程序,它按照一定的算法顺序访问网页,并从中提取有用信息。用户代理(User-Agent):模拟浏览器访问,避免被网站识别为机器人。请求处理:发送HTTP请求,获取网页内容。内容解析:使用正则表达式或DOM解析技术提取所需数据。数据存储:将提取的数据保存到数据库或文件中。错误处理:处理请求超时、服务器拒绝等异常情况。爬虫软件是一个强大的工具,能够帮助我们从互联网中提取有价值的数据。然而,使用爬虫时也需要注意合法性、效率和对目标网站的影响。

分享Python、数据分析、人工智能前沿知识 4900

被称之为永远的神!就这6个Python爬虫开源项目?

今天盘点 6 个爬虫开源项目,它们可以帮你爬天爬地爬空气,爬微博、爬B站、爬知乎、爬*站。提前声明,切勿使用这些项目从事非法商业活动,仅用于用于科研学习 私信小编01即可获取大量python学习资源。

weixin_55154866的博客 2061
上一篇: Microsoft Edge 浏览器可能遇到的问题,和解决方法
下一篇: java.lang.NoSuchMethodError:依赖版本冲突
淘金开源
博客等级 码龄15年 2405粉丝 201原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淘金开源

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值