生为张家界人我为张家界加油也会整个湖南加油!疫情爆发是张家界是最安全的,可在这个关键时刻张家界确实最危险的地方了,本篇文章会有点长都是干货可以耐心看完会收获到很多东西,如果需要python相关的资料欢迎找我领取哦~
加v:qwe54996
Python 编写的开源 Web 爬虫1. Scrapy
实现语言:Python
GitHub 星标数:28660
官方支持链接:https://scrapy.org/community/
简介
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
实现语言:Python
GitHub 星标数:1274
官方支持链接:https://scrapy.org/community/
简介
Cola 是一种高层分布式爬取框架,实现从网站爬取网页,并从中抽取结构化数据。
它提供了一种实现目标数据获取的简单且灵活的方式。
用户只需要编写其中一部分代码,就可在本地和分布式环境下运行。
特性
高层分布式爬取框架。
简单且高速。
灵活。
官方文档:https://github.com/chineking/cola
官方网站:https://pypi.org/project/Cola/
3. Crawley
实现语言 Python
GitHub 星标数: 144
官方支持链接:https://scrapy.org/community/
简介
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
实现语言: Python
GitHub 星标数: 2803
官方支持链接:https://scrapy.org/community/
简介
MechanicalSoup 是一种设计模拟人类使用 Web 浏览器行为的 Python 软件库,它基于解析软件库 BeautifulSoup 构建。
如果开发人员需要从单个站点采集数据,或是不需要大量数据采集,那么使用 MechanicalSoup 是一种简单高效的方法。
MechanicalSoup 自动存储和发送 Cookie、跟踪重定向、支持链接跟随和提交表单。
特性
轻量级。
支持 Cookie 处理器。
官方文档: https://mechanicalsoup.readthedocs.io/en/stable/
官方网站:https://mechanicalsoup.readthedocs.io/
5. PySpider
实现语言: Python
GitHub 星标数: 11803
官方支持链接:https://scrapy.org/community/
简介
PySpider 是一种 Python 编写的强大 Web 爬虫。
它支持 JavaScript 网页,并具有分布式架构。
PySpider 支持将爬取数据存储在用户选定的后台数据库,包括 MySQL, MongoDB, Redis, SQLite, Elasticsearch 等。
支持开发人员使用 RabbitMQ、Beanstalk 和 Redis 等作为消息队列。
特性
提供强大 Web 界面,具有脚本编辑器、任务监控、项目管理器和结果查看器。
支持对重度 Ajax 网站的爬取。
易于实现适用、快速的爬取。
官方文档: http://docs.pyspider.org/
官方网站:https://github.com/binux/pyspider
6. Portia
实现语言: Python
GitHub 星标数: 6250
官方支持链接:https://scrapy.org/community/
简介
Portia 是由 Scrapinghub 创建的一种可视化爬取工具,它不需要用户具有任何程序开发知识。
如果用户并非开发人员,最好直接使用 Portia 实现 Web 爬取需求。
用户无需任何安装就可免费试用 Portia,只需要在 Scrapinghub 注册一个账户,就可使用托管版本。
即便用户没有编程技能,在 Portia 中创建爬虫并抽取 Web 内容也是非常易于实现的。
用户无需安装任何程序,因为 Portia 是运行在 Web 页面上的。
用户可以使用 Portia 的基本点击工具标注需要爬取的数据,然后 Portia 就会根据这些标注理解如何爬取类似页面中的数据。
一旦检测到需要爬取的页面,Portia 会形成一个用户已创建结构的实例。
特性
通过记录并回放用户在页面上的操作,实现点击、拖动和等待等动作。
Portia 可以很好地爬取基于 Ajax 构建的网站(基于 Splash),也适用于爬取 Backbone、Angular 和 Ember 等重度 JavsScript 框架。
官方文档:https://portia.readthedocs.io/en/latest/index.html
官方网站: https://github.com/scrapinghub/portia
7. Beautifulsoup
实现语言: Python
官方支持链接:https://scrapy.org/community/
简介
Beautiful Soup 一种设计用于实现 Web 爬取等快速数据获取项目的 Python 软件库。
它在设计上处于 HTML 或 XML 解析器之上,提供用于迭代、搜索和修改解析树等功能的 Python 操作原语。往往能为开发人员节省数小时乃至数天的工作。
特性
Beautiful Soup 自动将输入文档转换为 Unicode 编码,并将输出文档转换为 UTF-8 编码。
Beautiful Soup 处于一些广为采用的 Python 解析器(例如,lxml 和 html5lib)之上,支持用户尝试使用多种不同的解析策略,并在速度和灵活性上做出权衡。
官方文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc/
官方网站: https://www.crummy.com/software/BeautifulSoup/
8. Spidy 爬虫
实现语言: Python
GitHub 星标数: 152
官方支持链接:https://scrapy.org/community/
简介
Spidy 是一种从命令行运行的 Web 爬虫。易于使用。用户只需提供 Web 网页的 URL 链接,Spidy 就可以开始爬取!Spidy 无疑是一种整体爬取 Web 的简单有效的方式。
Spidy 使用 Python 请求查询 Web 页面,并使用 lxml 抽取页面中的所有链接。非常简单!
特性
错误处理。
跨平台兼容性。
频繁时间戳日志。
可移植性。
用户友好的日志。
保存 Web 页面。
支持文件压缩。
官方文档:https://github.com/rivermont/spidy
官方网站: http://project.crawley-cloud.com/
9. Garb
实现语言: Python
GitHub 星标数: 1627
官方支持链接:https://scrapy.org/community/
简介
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
实现语言: Java
GitHub 星标数: 1743
官方支持链接:https://wiki.apache.org/nutch/HelpContents
简介
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
实现语言: JavaGitHub
星标数: 1236
官方支持链接:https://github.com/internetarchive/heritrix3/issues
简介:
在使用 Java 编写的免费开源 Web 爬虫中,Heritrix 是其中一种得到广泛使用的工具。事实上,它是一种可扩展、Web 规模、存档质量(archival-quality)的 Web 爬取项目。Heritrix 是一种扩展能力和性能很好的解决方案,支持用户即刻爬取并归档一组网站。此外,它在设计上考虑了 robots.txt 禁止规则和 META 机器人标签。Heritrix 可运行在 Linux/Unix 和 Windows 系统上。
特性:
HTTP 认证。NTLM 认证。链接抽取中的 XSL 转换。独立于搜索引擎。是一种成熟并稳定的平台。高度可配置。支持在任一机器上运行。
官方文档: https://github.com/internetarchive/heritrix3/wiki/Heritrix%203.0%20and%203.1%20User%20Guide
官方网站: https://github.com/internetarchive/heritrix3b
12. ACHE 爬虫
实现语言: JavaGitHub
星标数: 154
官方支持链接:https://gitter.im/ViDA-NYU/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
实现语言: JavaGitHub
星标数: 3039
官方支持链接:https://github.com/yasserg/crawler4j/issues
简介:
crawler4j 是一种 Java 编写的开源 Web 爬虫,提供了爬取 Web 网站的基本接口。开发人员可以使用 crawler4j 在数分钟内建立一个多线程 Web 爬虫。
官方文档: https://github.com/yasserg/crawler4j
官方网站: https://github.com/yasserg/crawler4j
14. Gecco
实现语言: JavaGitHub
星标数: 1245
官方支持链接:https://github.com/xtuhcy/gecco/issues
简介:
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
实现语言: JavaGitHub
星标数:24
官方支持链接:https://github.com/LAW-Unimi/BUbiNG/issues
简介:
BUbiNG 令人惊喜,它可称为下一代的开源 Web 爬虫。BUbiNG 是一种 Java 开发的完全分布式爬虫(无需中央协调),每秒可爬取数千个网页,并支持采集大规模数据集。BUbiNG 的分布式是基于高速协议实现的,因此可以获得非常高的通量。BUbiNG 提供对海量数据的大规模爬取。它完全可配置、易于扩展,并可集成垃圾信息检测。
特性:
高度并行。完全分布式。使用 JAI4J。JAI4J 是一种基于 JGroups 实现的瘦功能层,实现任务指派。(当前)使用剥离网页的指纹,检测近似的重复内容。快速。大规模爬取。
官方文档: http://law.di.unimi.it/software/bubing-docs/index.html
官方网站: http://law.di.unimi.it/software.php#bubing
16. Narconex
实现语言:Java
官方支持链接:https://github.com/norconex/collector-http/issues
简介:
对于寻求可满足企业级需求的开源 Web 爬虫的用户而言,Narconex 是一种很好的工具。Norconex 支持用户爬取任何 Web 内容。用户可以独立运行这种全功能数据采集器,或是将其集成在自己的应用中。支持所有操作系统。可在具有一般容量的单体服务器上爬取数百万信息。此外,Narconex 提供多种内容和元数据操作特性,还可以抽取页面中特定的图像。
特性:
多线程。支持按各种计划任务,抽取不同时间段的数据。从 HTML、Word、PDF 等多种文件格式中抽取文本内容。抽取文档相关的元数据。支持抽取使用用 JavaScript 渲染的页面。检测语言。支持翻译。可配置爬取速度。可检测发生修改或已被删除的文档。支持使用外部命令分析或操作文档。
官方文档: http://www.norconex.com/collectors/collector-http/getting-started
官方网站: http://www.norconex.com/collectors/collector-http/
17. WebSPHINX
实现语言: Java
当前尚不提供官方支持。
简介:
WebSphinix 是一种非常易于使用的可定制 Web 爬虫。它设计用于高级 Web 用户和 Java 编程人员,支持他们自动爬取小部分 Web。WebSphinix 数据抽取解决方案也提供了一种全面的 Java 类库和交互式软件开发环境。WebSphinix 包括两部分:爬虫基准测试(Crawler Workbench),WebSPHINX 类库。爬虫基准测试提供了很好的用户图形接口,支持用户配置并控制定制的 Web 爬虫。WebSPHINX 类库为使用 Java 编写 Web 爬虫提供支持。WebSphinix 支持运行在 Windows、Linux、Mac 和 Android IOS 上。
特性:
以图的方式可视化 Web 页面采集。将多个页面组合为单个文档,以供查看和打印。支持抽取所有满足设定模式的文本。支持 HTML 解析。支持 robot.txt 禁止标准。通用 HTML 转换。多线程 Web 页面检索。
官方文档: https://www.cs.cmu.edu/~rcm/websphinx/doc/index.html
官方网站: https://www.cs.cmu.edu/~rcm/websphinx/#about
18. Spiderman
实现语言: JavaGitHub
星标数: 2400
官方支持链接:https://gitee.com/l-weiwei/spiderman/issues
简介:
Spiderman 是一种 Java 开源 Web 数据抽取工具。它采集特定的 Web 页面,并从中抽取有用数据。Spiderman 主要使用 XPath 和正则表达式等技术抽取实际数据。
特性:
更高的性能。持久化集合状态。分布式。支持 JavaScript。
官方文档: https://gitee.com/l-weiwei/spiderman
官方网站: https://gitee.com/l-weiwei/spiderman
19. WebCollector :
实现语言: JavaGitHub
星标数: 1986
官方支持链接:https://github.com/CrawlScript/WebCollector/issues
简介:
WebCollector 是一种基于 Java 的开源 Web 爬虫框架。它为实现 Web 爬取功能提供了一下基本的接口。用户可以使用它在五分钟内建立起一个多线程爬虫。
特性:
快速。
官方文档: https://github.com/CrawlScript/WebCollector
官方网站: https://github.com/CrawlScript/WebCollector
20. Webmagic
实现语言: JavaGitHub
星标数: 6891
官方支持链接:https://groups.google.com/forum/#!forum/webmagic-java
简介:
WebMagic 是一种可扩展的爬虫框架。WebMagic 涵盖了爬虫的整个生命周期,包括下载、URL 管理、内容抽取和持久化。可用于简化一些特定爬虫的开发。
特性:
高度灵活的简单内核。提供实现 HTML 抽取的简单 API。使用 POJO 标注定制爬虫,无需配置。支持多线程和分布式。易于集成。
官方文档: http://webmagic.io/docs/en/
官方网站: https://github.com/code4craft/webmagic
21. StormCrawler
实现语言: JavaGitHub
星标数:437
官方支持链接:https://stackoverflow.com/questions/tagged/stormcrawler
简介:
StormCrawler 是一种基于 Apache Storm 构架分布式 Web 爬虫的开源 SDK。StormCrawler 为开发人员构建爬虫提供了软件库和一系列资源。StormCrawler 完全适用于以数据流提供需获取和解析的 URL 的情况,也非常适用于大规模递归性爬取,尤其是需要低延迟的情况。
特性:
可扩展。有弹性。低延迟。易于扩展。运行良好且高效。
官方文档: http://stormcrawler.net/docs/api/
官方网站: http://stormcrawler.net/
JavaScript 编写的开源 Web 爬虫22. NodeCrawler
实现语言: JavaScriptGitHub
星标数: 3999
官方支持链接:https://gitter.im/node-crawler/discuss?utm_source=badge
简介:
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
实现语言: JavaScriptGitHub
星标数:1764
官方支持链接:https://github.com/simplecrawler/simplecrawler/issues
简介:
Simplecrawler 设计提供基本的、灵活且稳定的网站爬取 API。Simplecrawler 在实现上考虑了针对特大型 Web 站点的归档、分析和搜索。它可爬取上百万页面,并毫无问题地向磁盘写入数十 GB 数据。
特性:
提供了用于自动检测链接资源的一些简单逻辑,用户可自行替换和添加。自动请求任何 robots.txt 禁止规则。具有灵活的队列系统,可在磁盘上冻结和解冻。
官方文档: https://github.com/simplecrawler/simplecrawler
官方网站: https://www.npmjs.com/package/simplecrawler
24. Js-crawler :
实现语言: JavaScriptGitHub
星标数: 167
官方支持链接:https://github.com/antivanov/js-crawler/issues
简介:
使用 NodeJS 实现的 Web 爬虫,支持 HTTP 和 HTTPS
官方文档: https://github.com/antivanov/js-crawler
官方网站: https://github.com/antivanov/js-crawler
25. Webster
实现语言: JavaScriptGitHub
星标数: 201
官方支持链接:https://github.com/zhuyingda/webster/issues
简介:
Webster 是一种使用 NodeJS 编写的可靠 Web 爬取和采集框架,用于爬取 Web 站点并从页面中抽取结构化数据。与其他爬取框架的不同之处在于,Webster 可以抓取浏览器客户端的 JavaScript 和 Ajax 请求呈现的内容。
官方文档: http://webster.zhuyingda.com/
官方网站: https://github.com/zhuyingda/webster
26. Node-osmosis
实现语言:JavaScriptGitHub
星标数: 3630
官方支持链接:https://github.com/rchipka/node-osmosis/issues
简介:
一种使用 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
实现语言:JavaScriptGitHub
星标数: 4341
官方支持链接:https://github.com/brendonboshell/supercrawler/issues
简介:
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 扩展
实现语言:JavaScriptGitHub
星标数: 775
官方支持链接:https://forum.webscraper.io/
简介:
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 爬虫
实现语言:JavaScriptGitHub
星标数: 3256
官方支持链接:https://github.com/yujiosaka/headless-chrome-crawler/issues
简介:
使用基本 HTML 文件请求的爬虫,通常速度很快。但这样的爬虫往往会抽取到空白内容,尤其是在爬取使用 AngularJS、React 和 Vue.js 等现代前端框架构建的网站时。
特性:
分布式爬取。
可配置并发、延迟和重试。
支持深度优先搜索和广度优先搜索算法。
支持插拔缓存存储,例如 Redis。
支持导出 CSV 和 JSON。
在达到最大请求时暂停爬取,并可在任一时刻恢复。
自动插入用于抽取的 jQuery。
保存屏幕截图,用于证实爬取过程。
模拟设备和用户代理。
具有优先队列,可提高爬取效率。
官方文档: https://github.com/yujiosaka/headless-chrome-crawler/blob/master/docs/API.md
官方网站: https://github.com/yujiosaka/headless-chrome-crawler
30. X-ray
实现语言:JavaScriptGitHub
星标数: 4464
官方支持链接:https://github.com/matthewmueller/x-ray/issues
特性:
模式灵活:支持字符串、数组、对象以及嵌套对象结构。
模式并非绑定于所抽取的页面结构,支持用户获取选定结构中的数据。
可组合(Composable):API 是完全可组合的,赋予用户抽取每个页面的极大灵活性。
分页支持:爬取页面在 Web 站点上的所有分页。
X-ray 还支持请求延迟和分页限制,并支持将爬取页面导入到单个文件中。这样一旦单个页面产生错误,用户不会失去所有已爬取的数据。
爬虫支持:从一个页面开始,轻易跳转另一个页面。页面跳转是可预测的,按深度优先爬取所有页面。
负责任的爬取:X-ray 支持并发、限制、延迟、超时和限制,实现负责任地爬取任何页面。
可插拔驱动:可按用户需求置换不同的爬虫。
官方文档: https://github.com/matthewmueller/x-ray
官方网站: https://www.npmjs.com/package/x-ray-scrape
需要相关资料的可以通过扫一下领取python资料