内容
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://cdn.jsdelivr.net/gh/xberg-io/assets@v1/banner/readme-banner-dark.svg">
<img alt="Xberg" width="420" src="https://cdn.jsdelivr.net/gh/xberg-io/assets@v1/banner/readme-banner-light.svg">
</picture>
</p>
# 爬虫引擎
<div align="center" style="display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 20px 0;">
<a href="https://github.com/xberg-io/alef">
<img src="https://img.shields.io/badge/Bindings-alef%20%D7%90-007ec6" alt="Bindings">
</a>
<!-- Language Bindings -->
<a href="https://crates.io/crates/crawlberg">
<img src="https://img.shields.io/crates/v/crawlberg?label=Rust&color=007ec6" alt="Rust">
</a>
<a href="https://pypi.org/project/crawlberg/">
<img src="https://img.shields.io/pypi/v/crawlberg?label=Python&color=007ec6" alt="Python">
</a>
<a href="https://www.npmjs.com/package/@kreuzberg/crawlberg">
<img src="https://img.shields.io/npm/v/@kreuzberg/crawlberg?label=Node.js&color=007ec6" alt="Node.js">
</a>
<a href="https://www.npmjs.com/package/@kreuzberg/crawlberg-wasm">
<img src="https://img.shields.io/npm/v/@kreuzberg/crawlberg-wasm?label=WASM&color=007ec6" alt="WASM">
</a>
<a href="https://central.sonatype.com/artifact/dev.kreuzberg.crawlberg/crawlberg">
<img src="https://img.shields.io/maven-central/v/dev.kreuzberg.crawlberg/crawlberg?label=Java&color=007ec6" alt="Java">
</a>
<a href="https://pkg.go.dev/github.com/xberg-io/crawlberg/packages/go">
<img src="https://img.shields.io/github/v/tag/xberg-io/crawlberg?label=Go&color=007ec6" alt="Go">
</a>
<a href="https://www.nuget.org/packages/Crawlberg/">
<img src="https://img.shields.io/nuget/v/Crawlberg?label=C%23&color=007ec6" alt="C#">
</a>
<a href="https://packagist.org/packages/xberg-io/crawlberg">
<img src="https://img.shields.io/packagist/v/xberg-io/crawlberg?label=PHP&color=007ec6" alt="PHP">
</a>
<a href="https://rubygems.org/gems/crawlberg">
<img src="https://img.shields.io/gem/v/crawlberg?label=Ruby&color=007ec6" alt="Ruby">
</a>
<a href="https://hex.pm/packages/crawlberg">
<img src="https://img.shields.io/hexpm/v/crawlberg?label=Elixir&color=007ec6" alt="Elixir">
</a>
<a href="https://pub.dev/packages/crawlberg">
<img src="https://img.shields.io/pub/v/crawlberg?label=Dart&color=007ec6" alt="Dart">
</a>
<a href="https://central.sonatype.com/artifact/dev.kreuzberg.crawlberg.android/crawlberg-android">
<img src="https://img.shields.io/maven-central/v/dev.kreuzberg.crawlberg.android/crawlberg-android?label=Kotlin&color=007ec6" alt="Kotlin">
</a>
<a href="https://github.com/xberg-io/crawlberg/tree/main/packages/swift">
<img src="https://img.shields.io/badge/Swift-SPM-007ec6" alt="Swift">
</a>
<a href="https://github.com/xberg-io/crawlberg/tree/main/packages/zig">
<img src="https://img.shields.io/badge/Zig-package-007ec6" alt="Zig">
</a>
<a href="https://github.com/xberg-io/crawlberg/releases">
<img src="https://img.shields.io/badge/C-FFI-007ec6" alt="C FFI">
</a>
<a href="https://github.com/xberg-io/crawlberg/pkgs/container/crawlberg">
<img src="https://img.shields.io/badge/Docker-ghcr.io-007ec6?logo=docker&logoColor=white" alt="Docker">
</a>
<!-- Project Info -->
<a href="https://github.com/xberg-io/crawlberg/blob/main/LICENSE">
<img src="https://img.shields.io/badge/License-MIT-007ec6" alt="License">
</a>
<a href="https://docs.crawlberg.xberg.io">
<img src="https://img.shields.io/badge/Docs-crawlberg-007ec6" alt="Documentation">
</a>
</div>
<div align="center" style="display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin: 28px 0 24px;">
<a href="https://discord.gg/xt9WY3GnKR">
<img height="22" src="https://img.shields.io/badge/Discord-Chat-007ec6?logo=discord&logoColor=white" alt="Join Discord">
</a>
</div>
高性能的 Rust 网络爬虫引擎,用于结构化数据提取。刮取、爬取和映射网站,提供 14 种语言的原生绑定 - 相同的引擎,在每个运行时环境中都有相同的结果。
## 什么是 Crawlberg?
Crawlberg 是爬虫**基础**: 您需要的一切,以便从头到尾刮取和爬取一个站点,从 Rust Core 到 HTML→Markdown,headless-Chrome 备用方案,robots/sitemap 解析,每个域的限速和 SSRF 安全策略 - 所有这些在 14 种语言绑定中都有相同的效果。
产品化问题(托管代理池、调优 WAF 指纹、身份验证会话注入、调度、计费)存在于 [xberg-enterprise](https://github.com/xberg-io/xberg-enterprise) 中,这是参考操作实现。每个扩展点(`Frontier`、`RateLimiter`、`CrawlStore`、`EventEmitter`、`ContentFilter`、`WafClassifier`,...)都是一个特征,您可以通过 `CrawlEngineBuilder::with_<trait>(...)` 注入。
### 功能
| 功能 | 描述 |
| ------- | ----------- |
| **结构化提取** | 文本、元数据、链接、图像、资产、JSON-LD、Open Graph、hreflang、收藏图标、标题、响应头 |
| **Markdown 转换** | 清洁的 Markdown,带有引用、文档结构和适合内容的模式 |
| **并发爬取** | 深度优先、广度优先或最佳优先遍历,带有可配置的深度、页面限制和并发性 |
| **14 种语言绑定** | Rust、Python、Node.js、Ruby、Go、Java、Kotlin(Android)、C#、PHP、Elixir、Dart、Swift、Zig 和 WebAssembly |
| **智能过滤** | BM25 相关性评分、URL 包含/排除模式、robots.txt 合规性、站点地图发现 |
| **浏览器渲染** | JavaScript-heavy SPA 的可选无头浏览器,带有 WAF 检测和绕过 |
| **批处理和流处理** | 同时抓取或爬取数百个 URL;通过异步流实现实时爬取事件 |
| **默认 SSRF 安全** | 拒绝环回、私有、链接本地和云元数据地址;通过 env var 或 `CrawlConfig` 选择退出 |
| **身份验证和速率限制** | HTTP 基本身份验证、Bearer 和自定义标头身份验证,带有 cookie jar;每个域的请求限速 |
| **MCP 服务器和 REST API** | 模型上下文协议集成,用于 AI 代理以及带有 OpenAPI 规范的 HTTP 服务器 |
### 支持的平台
每个绑定都提供 Linux(x86_64/aarch64)、macOS(ARM64)和 Windows(x64)的预编译二进制文件。有关完整矩阵,请参阅 [平台支持参考](https://docs.crawlberg.xberg.io)。
<div align="center">
<a href="https://github.com/xberg-io/crawlberg/stargazers">
<img src="docs/assets/star.gif" alt="Star Crawlberg on GitHub" width="640">
</a>
</div>
<p align="center"><strong>⭐ 给这个仓库加星以表达你的支持 - 它帮助其他人发现 Crawlberg。</strong></p>
## 快速开始
### 语言包
<details open>
<summary><strong>Python</strong></summary>
```sh
pip install crawlberg
```
参阅 [Python README](https://github.com/xberg-io/crawlberg/tree/main/packages/python) 以获取完整文档。
</details>
<details>
<summary><strong>Node.js</strong></summary>
```sh
npm install @kreuzberg/crawlberg
```
参阅 [Node.js README](https://github.com/xberg-io/crawlberg/tree/main/crates/crawlberg-node) 以获取完整文档。
</details>
<details>
<summary><strong>Rust</strong></summary>
```sh
cargo add crawlberg
```
参阅 [Rust README](https://github.com/xberg-io/crawlberg/tree/main/crates/crawlberg) 以获取完整文档。
</details>
<details>
<summary><strong>Go</strong></summary>
```sh
go get github.com/xberg-io/crawlberg/packages/go
```
参阅 [Go README](https://github.com/xberg-io/crawlberg/tree/main/packages/go) 以获取完整文档。
</details>
<details>
<summary><strong>Java</strong></summary>
可在 Maven Central 上作为 `dev.kreuzberg.crawlberg:crawlberg` 使用。参阅 [Java README](https://github.com/xberg-io/crawlberg/tree/main/packages/java) 以获取依赖代码段和当前版本。
</details>
<details>
<summary><strong>C#</strong></summary>
```sh
dotnet add package Crawlberg
```
参阅 [C# README](https://github.com/xberg-io/crawlberg/tree/main/packages/csharp) 以获取完整文档。
</details>
<details>
<summary><strong>Ruby</strong></summary>
```sh
gem install crawlberg
```
参阅 [Ruby README](https://github.com/xberg-io/crawlberg/tree/main/packages/ruby) 以获取完整文档。
</details>
<details>
<summary><strong>PHP</strong></summary>
```sh
composer require xberg-io/crawlberg
```
参阅 [PHP README](https://github.com/xberg-io/crawlberg/tree/main/packages/php) 以获取完整文档。
</details>
<details>
<summary><strong>Elixir</strong></summary>
在 `mix.exs` 依赖项中添加 `{:crawlberg, "~> 0.3"}`。参阅 [Elixir README](https://github.com/xberg-io/crawlberg/tree/main/packages/elixir) 以获取完整文档。
</details>
<details>
<summary><strong>Dart / Flutter</strong></summary>
```sh
dart pub add crawlberg
```
参阅 [Dart README](https://github.com/xberg-io/crawlberg/tree/main/packages/dart) 以获取完整文档。
</details>
<details>
<summary><strong>Kotlin (Android)</strong></summary>
可在 Maven Central 上作为 `dev.kreuzberg.crawlberg.android:crawlberg-android` 使用。参阅 [Kotlin README](https://github.com/xberg-io/crawlberg/tree/main/packages/kotlin-android) 以获取依赖代码段和当前版本。
</details>
<details>
<summary><strong>Swift</strong></summary>
通过 Swift Package Manager 添加。参阅 [Swift README](https://github.com/xberg-io/crawlberg/tree/main/packages/swift) 以获取完整文档。
</details>
<details>
<summary><strong>Zig</strong></summary>
参阅 [Zig README](https://github.com/xberg-io/crawlberg/tree/main/packages/zig) 以获取安装和使用说明。
</details>
<details>
<summary><strong>WebAssembly</strong></summary>
```sh
npm install @kreuzberg/crawlberg-wasm
```
参阅 [WebAssembly README](https://github.com/xberg-io/crawlberg/tree/main/crates/crawlberg-wasm) 以获取完整文档。
</details>
<details>
<summary><strong>C/C++ (FFI)</strong></summary>
C 头文件 + 共享库来自 [GitHub Releases](https://github.com/xberg-io/crawlberg/releases)。参阅 [FFI crate](https://github.com/xberg-io/crawlberg/tree/main/crates/crawlberg-ffi) 以获取完整文档。
</details>
<details>
<summary><strong>CLI</strong></summary>
```sh
cargo install crawlberg-cli
```
```sh
brew install xberg-io/tap/crawlberg
```
参阅 [CLI README](https://github.com/xberg-io/crawlberg/tree/main/crates/crawlberg-cli) 以获取完整文档。
</details>
### AI 编码助手
从 [`xberg-io/plugins`](https://github.com/xberg-io/plugins) 市场安装 Crawlberg 插件。它包含 Crawlberg 代理技能(站点爬取、HTML→Markdown 刮取、headless-Chrome 备用方案)以及 `crawlberg` MCP 服务器,并与每种主要编码代理一起使用 - 在下面扩展您的工具。
<details open>
<summary><strong>Claude Code</strong></summary>
```text
/plugin marketplace add xberg-io/plugins
/plugin install crawlberg@kreuzberg
```
</details>
<details>
<summary><strong>Codex CLI</strong></summary>
```text
/plugins add https://github.com/xberg-io/plugins
```
然后搜索 `crawlberg` 并选择 **安装插件**。
</details>
<details>
<summary><strong>Cursor</strong></summary>
设置 → 插件 → 从 URL 添加 → `https://github.com/xberg-io/plugins`,然后选择 **crawlberg**。
</details>
<details>
<summary><strong>Gemini CLI</strong></summary>
```text
gemini extensions install https://github.com/xberg-io/plugins
```
</details>
<details>
<summary><strong>Factory Droid</strong></summary>
```text
droid plugin marketplace add https://github.com/xberg-io/plugins
droid plugin install crawlberg@kreuzberg
```
</details>
<details>
<summary><strong>GitHub Copilot CLI</strong></summary>
```text
copilot plugin marketplace add https://github.com/xberg-io/plugins
copilot plugin install crawlberg@kreuzberg
```
</details>
<details>
<summary><strong>opencode</strong></summary>
将软件包添加到 `opencode.json`:
```json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["@kreuzberg/opencode-crawlberg"]
}
```
</details>
## 文档
完整的指南、每个语言的 API 参考、底层/操作模型、反机器人策略和可观察性都位于 **[docs.crawlberg.xberg.io](https://docs.crawlberg.xberg.io)**。
## 贡献
欢迎贡献!参阅我们的 [贡献指南](https://github.com/xberg-io/crawlberg/blob/main/CONTRIBUTING.md)。
## Kreuzberg.dev 的一部分
- [Kreuzberg](https://github.com/xberg-io/kreuzberg) - 文档智能:来自 91+ 种格式的文本、表格、元数据,可选 OCR。
- [Xberg Enterprise](https://github.com/xberg-io/xberg-enterprise) - 托管提取 API,带有 SDK、仪表板和可观察性。
- [crawlberg](https://github.com/xberg-io/crawlberg) - 网络爬取和刮取,带有 HTML→Markdown 和 headless-Chrome 备用方案。
- [html-to-markdown](https://github.com/xberg-io/html-to-markdown) - 快速、无损的 HTML→Markdown 引擎。
- [liter-llm](https://github.com/xberg-io/liter-llm) - 通用 LLM API 客户端,带有 14 种语言的原生绑定和 143 个提供商。
- [tree-sitter-language-pack](https://github.com/xberg-io/tree-sitter-language-pack) - tree-sitter 语法和代码智能原语。
- [alef](https://github.com/xberg-io/alef) - 多语言绑定生成器,生成跨 5 个多语言存储库的每种语言绑定。
## 许可证
[MIT 许可证](https://github.com/xberg-io/crawlberg/blob/main/LICENSE)
## 链接
- [文档](https://docs.crawlberg.xberg.io)
- [GitHub 仓库](https://github.com/xberg-io/crawlberg)
- [问题跟踪器](https://github.com/xberg-io/crawlberg/issues)
- [变更日志](CHANGELOG.md)
- [Discord](https://discord.gg/xt9WY3GnKR) - 社区、路线图、公告。
连接信息
猜你喜欢
暂无推荐服务器