Skip to content

Latest commit

 

History

History
223 lines (175 loc) · 14 KB

javascript.md

File metadata and controls

223 lines (175 loc) · 14 KB

JavaScript 网页抓取

此列表包含与 Web 抓取和数据处理相关的 JavaScript 库。该列表的内容主要是在可以在 Node.js 中运行的库(非网络浏览器)。

网络请求工具

  • request - 简化的 HTTP 请求客户端。
  • socks5-http-client - Node.js 的 JavaScript 中的 SOCKS v5 HTTP 客户端实现。
  • rest - 用于 JavaScript 的 RESTful HTTP 客户端。
  • wreck - HTTP 客户端实用程序。
  • got - 简化的 HTTP 请求。
  • node-fetch - 将 window.fetch 引入 Node.js 的轻量级模块。
  • bent - 带有 async/await 的 Node.js 功能 HTTP 客户端。
  • axios - 用于浏览器和 node.js 的基于 Promise 的 HTTP 客户端。
  • superagent - 适用于 Node.js 和浏览器的 Ajax(JS HTTP 客户端)。
  • urllib - 在复杂的世界中请求 HTTP(s) URL。
  • needle - Node.js 的灵活、可流式传输的 HTTP 客户端。具有代理、iconv、cookie、deflate 和多部分支持。

Web 抓取框架

  • webparsy - 用于使用 Puppeteer 和 YAML 抓取网站的 NodeJS 库和 cli。
  • node-crawler - 用于 NodeJS + 服务器端 jQuery 的 Web Crawler/Spider。
  • node-simplecrawler - 灵活的节点事件驱动爬虫。
  • Apify SDK - 适用于 JavaScript 的可扩展网络爬取和抓取库。支持使用无头 Chrome 和 Puppeteer 开发数据提取和 Web 自动化作业(不仅如此)。
  • Ayakashi - 下一代网页抓取框架。具有创建可靠且可维护的刮削和自动化系统的所有必要工具。
  • pjscrape - 一个用 Javascript 编写的网络抓取框架,使用 PhantomJS 和 jQuery。

HTML/XML

  • 通用
    • parse5 - WHATWG HTML5 规范兼容,快速且可用于 Node 和 io.js 的生产 HTML 解析/序列化工具集。
    • htmlparser2 - 原谅 html 和 xml 解析器。
    • sax-js - 用于 JS 的 sax 样式解析器。
    • cheerio - 专为服务器设计的核心 jQuery 的快速、灵活和精简的实现。
  • 防护
    • js-xss - 使用白名单指定的配置清理不受信任的 HTML(以防止 XSS)。
    • surgeon - 声明式 DOM 提取表达式评估器。

文本处理

用于解析和操作纯文本的库。

  • 通用
    • string.js - 额外的 JavaScript 字符串方法。
    • accounting.js - 用于数字、货币和货币格式化的轻量级 JavaScript 库 - 完全可本地化,零依赖。
    • validator.js - 字符串验证和清理。
  • 日期和时间
    • moment - 在 javascript 中解析、验证、操作和显示日期。
    • date - 日期解析。
    • ms.js - 微小的毫秒转换实用程序。
  • HTML 实体
    • he - 用 Ja​​vaScript 编写的强大的 HTML 实体编码器/解码器。
  • 货币
    • money.js - 简单小巧的 JavaScript 库,用于从任何货币到任何货币的实时货币转换和汇率计算。
  • 颜色
    • chroma.js - 用于各种颜色操作的 JavaScript 库。
    • color - JavaScript 颜色转换和操作库。
    • TinyColor - JavaScript 的快速、小型颜色处理和转换。
  • 用户代理
    • UAParser.js - 基于 JavaScript 的轻量级用户代理字符串解析器。支持浏览器和 node.js 环境。
  • 语义版本

特定格式处理

用于解析和处理特定文本格式的库。

  • 通用
    • jBinary - 具有用于描述文件类型和数据结构的声明性语法的二进制文件的高级 I/O(加载、解析、操作、序列化、保存)。
  • Office
    • js-xlsx - XLSX / XLSM / XLSB / XLS / SpreadsheetML (Excel Spreadsheet) / ODS 解析器和编写器。
  • CSV
    • BabyParse - 基于 Papa Parse 的快速可靠的 CSV 解析器。 Papa Parse 用于浏览器,Baby Parse 用于 Node.js。
    • CSV - 一个简单、超快的 CSV 解析器和编码器。完全符合 RFC 4180。
  • JSON
    • json3 - 与几乎所有 JavaScript 平台兼容的现代 JSON 实现。
  • EXIF
    • exif-js - 用于读取 EXIF 图像元数据的 JavaScript 库
  • CSS
    • parse-css - 基于标准的 CSS 解析器
    • parser-lib CSS parser - ParserLib CSS 解析器是一个用 JavaScript 编写的受 CSS3 SAX 启发的解析器。默认情况下,解析器仅处理标准 CSS 语法,不进行验证(检查属性名称和值)。
  • Torrent
    • parse-torrent - 解析一个 torrent 标识符(magnet uri、.torrent 文件、信息哈希)。
  • SQL
    • SQL Parser - SQL Parser 是用 JS 编写的 SQL 的词法分析器、语法和解析器。目前它只能解析相当基本的 SELECT 查询。
  • YAML
    • JS-YAML - JavaScript YAML 解析器和转储器,非常快。
  • Markdown
    • markdown-it - Markdown 解析器, 100% CommonMark 支持、扩展、语法插件和高速
  • Atom/RSS
    • node-feedparser - Node.js 中强大的 RSS、Atom 和 RDF 提要解析。
  • 书签(火狐,谷歌浏览器,...)

自然语言处理

用于处理人类语言的库。

  • 通用
    • natural - 节点的通用自然语言工具。
    • nlp_compromise - 自然语言处理。
    • Hanzi - HanziJS 是一个汉字和 NLP 模块,用于 Node.js 的中文语言处理。
    • salient - Node.js 的机器学习、自然语言处理和情感分析工具包。
    • node-summary - 使用简单的摘要算法总结文本的节点模块。
  • 词干
    • snowball-js - 流行的雪球词干提取 nlp 算法的 javascript 实现。
    • porter-stemmer - Martin Porter 的 node.js 词干分析器。
    • Porter-Stemmer - Porter Stemmer 的 Javascript 实现。
    • lunr-languages - Lunr Javascript 库的语言词干和停用词集合。
  • 语言检测
    • franc - 自然语言检测。
    • guessLanguage.js - 基于 trigram 统计分析的 Node.js 自然语言检测库。

浏览器自动化和仿真

  • phantomjs - 可编写脚本的无头 WebKit。
  • slimerjs - 一个运行 Gecko 的类似 PhantomJS 的工具。
  • casperjs - PhantomJS 和 SlimerJS 的导航脚本和测试实用程序。
  • zombie - 使用 node.js 进行快速、全栈、无头浏览器测试。
  • nightmare - Nightmare 是一个高级包装器,可让您自动执行浏览器任务。
  • puppeteer - Puppeteer 是一个 Node 库,它提供了一个高级 API 来通过 DevTools 协议控制无头 Chrome 或 Chromium。它还可以配置为使用完整(非无头)Chrome 或 Chromium。
  • headless-chrome-crawler - 由 Headless Chrome 驱动的分布式爬虫。
  • puppeteer-recorder - Puppeteer 记录器是一个 Chrome 扩展程序,可以记录您的浏览器交互并生成 Puppeteer 脚本。
  • wendigo - 基于 Puppeteer 构建的面向测试的无头浏览器。
  • Playwright - Node.js 库,使用单个 API 自动化 Chromium、Firefox 和 WebKit。

多进程

  • nexpect - 在 node.js 中轻松生成和控制子进程。
  • respawn - 生成一个进程并在它崩溃时重新启动它。
  • node-webworker - NodeJS 的 WebWorkers 实现。

异步

用于异步网络编程的库。

  • socket.io - 实时应用程序框架(Node.JS 服务器)。
  • engine.io - Engine.IO 是 Socket.IO 的基于传输的跨浏览器/跨设备双向通信层的实现。
  • async - 节点和浏览器的异步实用程序。

队列

  • kue - Kue 是一个由 redis 支持的优先级作业队列,为 Node.js 构建。
  • bull - 一个轻量级、健壮和快速的作业处理队列。为坚如磐石的稳定性和原子性而精心编写。

电子邮件

用于解析电子邮件的库。

  • mailparser - 解码 mime 格式的电子邮件。

URL 和网络地址操作

用于解析/修改 URL 和网络地址的库。

  • 网址
    • query-string - 解析和字符串化 URL 查询字符串。
    • URI.js - Javascript URL 变异库。
    • jsurl - 使用 JavaScript 进行轻量级 URL 操作。
    • arg.js - 轻量级 URL 参数和参数解析器
  • 网络地址
    • node-ip - node.js 的 IP 地址工具。
    • ip-address - 用于在 JavaScript 中解析和操作 IPv6(和 v4)地址的库。

网页内容提取

用于提取网页内容的库。

  • node-read - 从任何页面获取可读内容。基于 Arc90 的可读性项目,使用 Cheerio 引擎。
  • node-ytdl-core - JavaScript 中的 Youtube 视频下载器。
  • ImageResolver - 尽最大努力在不加载所有图像的情况下确定 URL 上的主图像。

网络套接字

使用 WebSocket 的库。

  • websocket.io - WebSocket.IO 是 Socket.IO 之前使用的 websocket 服务器的抽象。它对 websocket 协议/规范和 API 具有最广泛的支持,允许与更高级别的框架(例如 Engine、Socket.IO 的实时核心)进行互操作。
  • WebScoket-Node - Node.JS 的 WebSocket 实现(草案 -08 到最终 RFC 6455)。

DNS 解析

  • multicast-dns - 纯 javascript 中的低级多播 dns 实现。
  • node-dns - 用纯 javascript 替换 node.js 的 dns 模块。

计算机视觉

  • tracking.js - 一种现代的网络计算机视觉方法。
  • ocrad.js - 通过 Emscripten 的 Javascript 中的 OCR。

代理服务器

  • toxy - 用于模拟服务器故障场景和意外网络条件的可破解 HTTP 代理。
  • proxy-chain - 代理服务器的 Node.js 实现(想想 Squid),支持 SSL、身份验证和上游代理链。

数据结构

  • immutable-js - 用于 Javascript 的不可变持久数据集合,可提高效率和简单性。
  • lodash - 更一致的对数组、字符串、对象和参数对象的跨环境迭代支持。

其他 JavaScript 列表