能力标签
🛠
AI工具

开源AI工具:Go web爬虫

基于 Go · 开源免费,本地部署,数据完全自主可控
英文名:doc-scraper
⭐ 91 Stars 🍴 9 Forks 💻 Go 📄 Apache-2.0 🏷 AI 7.5分
7.5AI 综合评分
web-scrapergollmdata-preparation
✦ AI Skill Hub 推荐

AI Skill Hub 推荐使用:开源AI工具:Go web爬虫 是一款优质的AI工具。AI 综合评分 7.5 分,在同类工具中表现稳健。如果你正在寻找可靠的AI工具解决方案,这是一个值得深入了解的选择。

📚 深度解析
开源AI工具:Go web爬虫 是一款基于 Go 的开源工具,在 GitHub 上收获 0k+ Star,是web-scraper、go、llm、data-preparation领域中的优质开源项目。开源工具的最大优势在于代码完全透明,你可以审计每一行代码的安全性,也可以根据自身需求进行二次开发和定制。

**为什么要使用开源工具而非商业 SaaS?**
对于个人开发者和有隐私需求的用户,本地部署的开源工具意味着数据不离本机,不受第三方服务商的数据政策约束。同时,开源工具通常没有使用次数限制和月度费用,一次安装即可长期使用,对于高频使用场景的总拥有成本(TCO)远低于订阅制商业工具。

**安装与环境准备**
开源AI工具:Go web爬虫 依赖 Go 运行环境。建议通过 pyenv(Python)或 nvm(Node.js)管理 Go 版本,避免全局环境污染。对于新手用户,推荐先创建虚拟环境(python -m venv venv && source venv/bin/activate),再安装依赖,这样即使出现问题也可以随时删除虚拟环境重新开始,不影响系统稳定性。

**社区与维护**
GitHub Issue 和 Discussion 是获取帮助的最快渠道。在提问前建议先检查 Closed Issues(已关闭的问题),大多数常见问题都已有解答。遇到 Bug 时,提供 pip list 的输出、完整错误堆栈和最小可复现示例,能显著提高开发者响应速度。AI Skill Hub 将持续追踪 开源AI工具:Go web爬虫 的版本更新,及时通知重要功能变化。
📋 工具概览

使用Go语言开发的web爬虫工具,用于爬取文档网站并转换内容为清晰的Markdown格式,提高文档管理效率。

开源AI工具:Go web爬虫 是一款基于 Go 开发的开源工具,专注于 web-scraper、go、llm 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。

GitHub Stars
⭐ 91
开发语言
Go
支持平台
Windows / macOS / Linux(跨平台)
维护状态
轻量级项目,按需更新
开源协议
Apache-2.0
AI 综合评分
7.5 分
工具类型
AI工具
Forks
9
📖 中文文档
以下内容由 AI Skill Hub 根据项目信息自动整理,如需查看完整原始文档请访问底部「原始来源」。

使用Go语言开发的web爬虫工具,用于爬取文档网站并转换内容为清晰的Markdown格式,提高文档管理效率。

开源AI工具:Go web爬虫 是一款基于 Go 开发的开源工具,专注于 web-scraper、go、llm 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。

📌 核心特色
  • 开源免费,支持本地部署,数据完全自主可控
  • 活跃的 GitHub 开源社区,持续迭代更新
  • 提供详细文档和使用示例,新手友好
  • 支持自定义配置,灵活适配不同使用环境
  • 可作为基础组件集成进现有技术栈或进行二次开发
🎯 主要使用场景
  • 本地部署运行,保护数据隐私,满足合规要求
  • 自定义集成到现有系统,扩展技术栈能力
  • 作为开源基础组件进行商业化二次开发
以下安装命令基于项目开发语言和类型自动生成,实际以官方 README 为准。
安装命令
# 方式一:go install(推荐)
go install github.com/Sriram-PR/doc-scraper@latest

# 方式二:从源码编译
git clone https://github.com/Sriram-PR/doc-scraper
cd doc-scraper
go build -o doc-scraper .

# 方式三:下载预编译二进制
# 访问 Releases 页面下载对应平台二进制文件
# https://github.com/Sriram-PR/doc-scraper/releases
📋 安装步骤说明
  1. 访问 GitHub 仓库页面
  2. 按照 README 文档完成依赖安装
  3. 根据系统环境完成初始化配置
  4. 参考官方示例或文档开始使用
  5. 遇到问题可在 GitHub Issues 中查找解答
以下用法示例由 AI Skill Hub 整理,涵盖最常见的使用场景。
常用命令 / 代码示例
# 查看帮助
doc-scraper --help

# 基本运行
doc-scraper [options] <input>

# 详细使用说明请查阅文档
# https://github.com/Sriram-PR/doc-scraper
以下配置示例基于典型使用场景生成,具体参数请参照官方文档调整。
配置示例
# doc-scraper 配置说明
# 查看配置选项
doc-scraper --config-example > config.yml

# 常见配置项
# output_dir: ./output
# log_level: info
# workers: 4

# 环境变量(覆盖配置文件)
export DOC_SCRAPER_CONFIG="/path/to/config.yml"
📑 README 深度解析 真实文档 完整度 70/100 查看 GitHub 原文 →
以下内容由系统直接从 GitHub README 解析整理,保留代码块、表格与列表结构。

LLM Documentation Scraper (`doc-scraper`)

Go Version Go Reference Go Report Card License

A configurable, concurrent, and resumable web crawler written in Go. Specifically designed to scrape technical documentation websites, extract core content, convert it cleanly to Markdown format suitable for ingestion by Large Language Models (LLMs), and save the results locally.

Overview

This project provides a powerful command-line tool to crawl documentation sites based on settings defined in a config.yaml file. It navigates the site structure, extracts content from specified HTML sections using CSS selectors, and converts it into clean Markdown files.

Key Features

FeatureDescription
**Configurable Crawling**Uses YAML for global and site-specific settings
**Scope Control**Limits crawling by domain, path prefix, and disallowed path patterns (regex)
**Content Extraction**Extracts main content using CSS selectors
**HTML-to-Markdown**Converts extracted HTML to clean Markdown
**Image Handling**Optional downloading and local rewriting of image links with domain and size filtering
**Link Rewriting**Rewrites internal links to relative paths for local structure
**URL-to-File Mapping**Optional TSV file logging saved file paths and their corresponding original URLs
**YAML Metadata Output**Optional detailed YAML file per site with crawl stats and per-page metadata (including content hashes)
**Concurrency**Configurable worker pools and semaphore-based request limits (global and per-host)
**Rate Limiting**Configurable per-host delays with jitter
**Robots.txt & Sitemaps**Respects robots.txt and processes discovered sitemaps
**State Persistence**Uses BadgerDB for state; supports resuming crawls via resume subcommand
**Graceful Shutdown**Handles SIGINT/SIGTERM with proper cleanup
**HTTP Retries**Exponential backoff with jitter for transient errors
**Observability**Structured logging (logrus); optional pprof endpoint (build with -tags pprof)
**Modular Code**Organized into packages for clarity and maintainability
**CLI Utilities**Built-in validate and list-sites commands for configuration management
**MCP Server Mode**Expose as Model Context Protocol server for Claude Code/Cursor integration
**Auto Content Detection**Automatic framework detection (Docusaurus, MkDocs, Sphinx, GitBook, ReadTheDocs) with readability fallback
**Parallel Site Crawling**Crawl multiple sites concurrently with shared resource management
**Watch Mode**Scheduled periodic re-crawling with state persistence

Prerequisites

  • Go: Version 1.25 or later
  • Git: For cloning the repository
  • Disk Space: Sufficient for storing crawled content and state database

Getting Started

Installation

Option 1: Direct Installation (Recommended)

Install the latest version directly from GitHub:

go install github.com/Sriram-PR/doc-scraper/cmd/doc-scraper@latest

This installs the doc-scraper binary to your GOPATH/bin directory (usually ~/go/bin or %USERPROFILE%\go\bin). Make sure this directory is in your PATH.

Option 2: Clone and Build

  1. Clone the repository:
   git clone https://github.com/Sriram-PR/doc-scraper.git
   cd doc-scraper
   
  1. Install Dependencies:
   go mod tidy
   
  1. Build the Binary:
   make build
   # or: go build -o doc-scraper ./cmd/doc-scraper
   

This creates an executable named doc-scraper in the project root.

Quick Start

  1. Create a basic config.yaml file (see Configuration section)
  2. Run the crawler:
   ./doc-scraper crawl -site your_site_key -loglevel info
   
  1. Find your crawled documentation in the ./crawled_docs/ directory

Example Configuration

```yaml

Usage

Execute the compiled binary from the project root directory:

./doc-scraper <command> [options]

Example Usage Scenarios

Basic Crawl:

./doc-scraper crawl -site tensorflow_docs -loglevel info

Resume a Large Crawl:

./doc-scraper resume -site pytorch_docs -loglevel info

Validate Configuration:

./doc-scraper validate -config config.yaml
./doc-scraper validate -site pytorch_docs  # Validate specific site

List Available Sites:

./doc-scraper list-sites

High Performance Crawl with Profiling:

./doc-scraper crawl -site small_docs -loglevel warn -pprof localhost:6060

Debug Mode for Troubleshooting:

./doc-scraper crawl -site test_site -loglevel debug

Parallel Crawl of Multiple Sites:

./doc-scraper crawl -sites pytorch_docs,tensorflow_docs,langchain_docs

Crawl All Configured Sites:

./doc-scraper crawl --all-sites

Start MCP Server for Claude Desktop:

./doc-scraper mcp-server -config config.yaml

Start MCP Server with SSE Transport:

./doc-scraper mcp-server -config config.yaml -transport sse -port 8080

Example Usage

sites:
  pytorch_docs:
    start_urls:
      - "https://pytorch.org/docs/stable/"
    allowed_domain: "pytorch.org"
    allowed_path_prefix: "/docs/stable/"
    content_selector: "auto"  # Auto-detect framework
    max_depth: 0

Usage

```bash

Usage

```bash

Example Output

INFO Starting watch mode for 2 sites with interval 24h0m0s
INFO Watch schedule:
INFO   pytorch_docs: last run 2024-01-15T10:30:00Z (success, 1500 pages), next run 2024-01-16T10:30:00Z
INFO   tensorflow_docs: never run, will run immediately
INFO Running crawl for 1 due sites: [tensorflow_docs]
...
INFO Next crawl: pytorch_docs in 23h45m (at 10:30:00)

Usage

Stdio Transport (for Claude Desktop/Cursor):

./doc-scraper mcp-server -config config.yaml

SSE Transport (HTTP-based):

./doc-scraper mcp-server -config config.yaml -transport sse -port 8080

Tool Examples

List available sites:

Tool: list_sites
Result: Returns all configured sites with their domains and crawl status

Fetch a single page:

Tool: get_page
Arguments: { "url": "https://docs.example.com/guide", "content_selector": "article" }
Result: Returns page content as markdown with metadata

Start a background crawl:

Tool: crawl_site
Arguments: { "site_key": "pytorch_docs", "incremental": true }
Result: Returns job ID for tracking progress

Check crawl progress:

Tool: get_job_status
Arguments: { "job_id": "abc-123-def" }
Result: Returns status, pages processed, and completion info

Search crawled content:

Tool: search_crawled
Arguments: { "query": "neural network", "site_key": "pytorch_docs", "max_results": 10 }
Result: Returns matching pages with snippets

Configuration (`config.yaml`)

A config.yaml file is required to run the crawler. Create this file in the project root or specify its path using the -config flag.

Key Settings for LLM Use

When configuring for LLM documentation processing, pay special attention to these settings:

  • sites.<your_site_key>.content_selector: Define precisely to capture only relevant text
  • sites.<your_site_key>.allowed_domain / allowed_path_prefix: Define scope accurately
  • skip_images: Set to true globally or per-site if images aren't needed for the LLM
  • Adjust concurrency/delay settings based on the target site and your resources

Global settings (applied if not overridden by site)

default_delay_per_host: 500ms num_workers: 8 num_image_workers: 8 max_requests: 48 max_requests_per_host: 4 output_base_dir: "./crawled_docs" state_dir: "./crawler_state" max_retries: 4 initial_retry_delay: 1s max_retry_delay: 30s semaphore_acquire_timeout: 30s global_crawl_timeout: 0s skip_images: false # Set to true to skip images globally max_image_size_bytes: 10485760 # 10 MiB enable_output_mapping: true output_mapping_filename: "global_url_map.tsv" enable_metadata_yaml: true metadata_yaml_filename: "crawl_meta.yaml"

HTTP Client Settings

http_client_settings: timeout: 45s max_idle_conns_per_host: 6

Site-specific configurations

sites: # Key used with -site flag pytorch_docs: start_urls: - "https://pytorch.org/docs/stable/" allowed_domain: "pytorch.org" allowed_path_prefix: "/docs/stable/" content_selector: "article.pytorch-article .body" max_depth: 0 # 0 for unlimited depth skip_images: false # Override global mapping filename for this site output_mapping_filename: "pytorch_docs_map.txt" metadata_yaml_filename: "pytorch_metadata_output.yaml" disallowed_path_patterns: - "/docs/stable/./_modules/." - "/docs/stable/.\.html#."

tensorflow_docs: start_urls: - "https://www.tensorflow.org/guide" - "https://www.tensorflow.org/tutorials" allowed_domain: "www.tensorflow.org" allowed_path_prefix: "/" content_selector: ".devsite-article-body" max_depth: 0 delay_per_host: 1s # Site-specific override # Disable mapping for this site, overriding global enable_output_mapping: false enable_metadata_yaml: false disallowed_path_patterns: - "/install/." - "/js/." ```

Full Configuration Options

OptionTypeDescriptionDefault
default_user_agentStringDefault User-Agent header for requests"" (Go default)
default_delay_per_hostDurationTime to wait between requests to the same host0s (no delay)
num_workersIntegerNumber of concurrent crawl workers4
num_image_workersIntegerNumber of concurrent image download workerssame as num_workers
max_requestsIntegerMaximum concurrent requests (global)10
max_requests_per_hostIntegerMaximum concurrent requests per host2
output_base_dirStringBase directory for crawled content"./crawled_docs"
state_dirStringDirectory for BadgerDB state data"./crawler_state"
max_retriesIntegerMaximum retry attempts for HTTP requests3
initial_retry_delayDurationInitial delay for retry backoff1s
max_retry_delayDurationMaximum delay for retry backoff30s
semaphore_acquire_timeoutDurationTimeout for acquiring the global semaphore30s
global_crawl_timeoutDurationOverall timeout for the entire crawl0s (no timeout)
per_page_timeoutDurationTimeout for processing a single page0s (no timeout)
skip_imagesBooleanWhether to skip downloading imagesfalse
max_image_size_bytesIntegerMaximum allowed image size0 (unlimited)
max_page_size_bytesIntegerMaximum HTML page body size52428800 (50 MiB)
enable_output_mappingBooleanEnable URL-to-file mapping logfalse
output_mapping_filenameStringFilename for the URL-to-file mapping log"url_to_file_map.tsv"
enable_metadata_yamlBooleanEnable detailed YAML metadata output filefalse
metadata_yaml_filenameStringFilename for the YAML metadata output file"metadata.yaml"
enable_jsonl_outputBooleanEnable JSONL page output for RAG pipelinesfalse
jsonl_output_filenameStringFilename for JSONL output"pages.jsonl"
enable_incrementalBooleanEnable incremental crawling globallyfalse
db_gc_intervalDurationBadgerDB garbage collection interval10m
chunking.enabledBooleanEnable token-aware content chunkingfalse
chunking.max_chunk_sizeIntegerMax chunk size in tokens512
chunking.chunk_overlapIntegerOverlap between chunks in tokens50
chunking.output_filenameStringChunks output filename"chunks.jsonl"
http_client_settingsObjectHTTP client configuration*(see below)*
sitesMapSite-specific configurations*(required)*

HTTP Client Settings: (These are global and cannot be overridden per site in the current structure)

  • timeout: Overall request timeout (Default in code: 45s)
  • max_idle_conns: Total idle connections (Default in code: 100)
  • max_idle_conns_per_host: Idle connections per host (Default in code: 2)
  • idle_conn_timeout: Timeout for idle connections (Default in code: 90s)
  • tls_handshake_timeout: TLS handshake timeout (Default in code: 10s)
  • expect_continue_timeout: "100 Continue" timeout (Default in code: 1s)
  • force_attempt_http2: null (use Go default), true, or false. (Default in code: null)
  • dialer_timeout: TCP connection timeout (Default in code: 15s)
  • dialer_keep_alive: TCP keep-alive interval (Default in code: 30s)

Site-Specific Configuration Options:

  • start_urls: Array of starting URLs for crawling (Required)
  • allowed_domain: Restrict crawling to this domain (Required)
  • allowed_path_prefix: Further restrict crawling to URLs with this prefix (Required)
  • content_selector: CSS selector for main content extraction, or "auto" for automatic detection (Required)
  • max_depth: Maximum crawl depth from start URLs (0 = unlimited)
  • delay_per_host: Override global delay setting for this site
  • disallowed_path_patterns: Array of regex patterns for URLs to skip
  • link_extraction_selectors: Array of CSS selectors for additional link extraction areas
  • respect_nofollow: Boolean. Whether to respect rel="nofollow" links
  • user_agent: String. Override global user agent for this site
  • skip_images: Override global image setting for this site
  • max_image_size_bytes: Integer. Override global max image size for this site
  • allowed_image_domains: Array of domains from which to download images
  • disallowed_image_domains: Array of domains to block image downloads from
  • enable_output_mapping: true or false. Override global URL-to-file mapping enablement for this site
  • output_mapping_filename: String. Override global URL-to-file mapping filename for this site
  • enable_metadata_yaml: true or false. Override global YAML metadata output enablement for this site
  • metadata_yaml_filename: String. Override global YAML metadata filename for this site
  • enable_jsonl_output: true or false. Override global JSONL output enablement for this site
  • jsonl_output_filename: String. Override global JSONL output filename for this site
  • chunking.enabled: true or false. Override global chunking enablement for this site
  • chunking.max_chunk_size: Integer. Override global max chunk size for this site
  • chunking.chunk_overlap: Integer. Override global chunk overlap for this site
  • chunking.output_filename: String. Override global chunks output filename for this site

Command Options

crawl / resume:

FlagDescriptionDefault
-config <path>Path to config fileconfig.yaml
-site <key>Site key from config (single site)-
-sites <keys>Comma-separated site keys for parallel crawling-
--all-sitesCrawl all configured sites in parallelfalse
-loglevel <level>Log level (debug, info, warn, error, fatal)info
-pprof <addr>pprof server address. Only effective in builds with -tags pprof; default builds log a warning and ignore the flag"" (disabled)
-incrementalEnable incremental crawling (skip unchanged pages)false
-fullForce full crawl (ignore incremental settings)false

Note: One of -site, -sites, or --all-sites is required.

validate:

FlagDescriptionDefault
-config <path>Path to config fileconfig.yaml
-site <key>Site key to validate (optional, validates all if empty)-

list-sites:

FlagDescriptionDefault
-config <path>Path to config fileconfig.yaml

mcp-server:

FlagDescriptionDefault
-config <path>Path to config fileconfig.yaml
-transport <type>Transport type (stdio, sse)stdio
-port <num>HTTP port (for SSE transport)8080
-loglevel <level>Log level (debug, info, warn, error)info

watch:

FlagDescriptionDefault
-config <path>Path to config fileconfig.yaml
-site <key>Site key to watch (single site)-
-sites <keys>Comma-separated site keys to watch-
--all-sitesWatch all configured sitesfalse
-interval <duration>Crawl interval (e.g., 1h, 24h, 7d)24h
-loglevel <level>Log level (debug, info, warn, error)info

Note: One of -site, -sites, or --all-sites is required.

Crawl all configured sites

./doc-scraper crawl --all-sites

Error: site 'langchain_docs' not found in configuration

Watch all configured sites weekly

./doc-scraper watch --all-sites -interval 7d ```

Claude Code Integration

Add to your Claude Code configuration (claude_code_config.json):

{
  "mcpServers": {
    "doc-scraper": {
      "command": "/path/to/doc-scraper",
      "args": ["mcp-server", "-config", "/path/to/config.yaml"]
    }
  }
}
🎯 aiskill88 AI 点评 A 级 2026-05-23

该工具使用Go语言开发,具有较好的性能和扩展性,适合用于大规模文档爬取任务,但需要注意爬取网站的协议和政策

📚 实用指南(长尾问题)
适合谁
  • 需要让 Claude / Cursor 操作本地工具的 AI 工程师
  • 构建多智能体协作系统的 Agent 开发者
  • 构建企业知识库 / RAG 检索应用的团队
最佳实践
  • 配置 MCP 服务器时建议使用 stdio 传输 + JSON-RPC,避免暴露公网
  • 分块大小建议 256-512 tokens,向量库优选 pgvector 或 Qdrant
  • Agent 任务先做 dry-run 验证工具调用链,再开启自主执行
常见错误
  • API key 直接提交到 git 仓库(请用 .env 并加入 .gitignore)
  • MCP 配置路径拼错或权限不足,重启 Claude Desktop 才生效
  • embedding 模型与查询模型不一致导致检索失效
部署方案
  • CLI:直接 npm install -g / pip install,命令行调用
  • 云端托管:可放在 Vercel / Railway / Fly.io 等 PaaS 平台
相关搜索
doc-scraper 中文教程doc-scraper 安装报错怎么办doc-scraper MCP 配置doc-scraper Agent 工作流doc-scraper 与同类工具对比doc-scraper 最佳实践doc-scraper 适合谁用
⚡ 核心功能
👥 适合谁
  • 需要让 Claude / Cursor 操作本地工具的 AI 工程师
  • 构建多智能体协作系统的 Agent 开发者
  • 构建企业知识库 / RAG 检索应用的团队
⭐ 最佳实践
  • 配置 MCP 服务器时建议使用 stdio 传输 + JSON-RPC,避免暴露公网
  • 分块大小建议 256-512 tokens,向量库优选 pgvector 或 Qdrant
  • Agent 任务先做 dry-run 验证工具调用链,再开启自主执行
⚠️ 常见错误
  • API key 直接提交到 git 仓库(请用 .env 并加入 .gitignore)
  • MCP 配置路径拼错或权限不足,重启 Claude Desktop 才生效
  • embedding 模型与查询模型不一致导致检索失效
👥 适合人群
AI 技术爱好者研究人员和学生开发者和工程师技术创业者
🎯 使用场景
  • 本地部署运行,保护数据隐私,满足合规要求
  • 自定义集成到现有系统,扩展技术栈能力
  • 作为开源基础组件进行商业化二次开发
⚖️ 优点与不足
✅ 优点
  • +Apache-2.0 协议,可免费商用
  • +完全开源免费,无授权费用
  • +本地部署,数据完全自主可控
  • +开发者社区支持,遇问题可查可问
⚠️ 不足
  • 安装和初始配置可能需要一定技术基础
  • 功能完整性通常不如成熟商业产品
  • 技术支持主要依赖开源社区,响应速度不稳定
⚠️ 使用须知

AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。

建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。

📄 License 说明

✅ Apache 2.0 — 宽松开源协议,可商用,需保留版权声明和 NOTICE 文件,含专利授权条款。

🔗 相关工具推荐
📰 相关 AI 新闻
🍿 AI 圈相关吃瓜
🗺️ 相关解决方案
🧩 你可能还需要
基于当前 Skill 的能力图谱,自动补全的工具组合
❓ 常见问题 FAQ
解答
💡 AI Skill Hub 点评

总体来看,开源AI工具:Go web爬虫 是一款质量良好的AI工具,在同类工具中具备一定竞争力。AI Skill Hub 将持续追踪其更新动态,建议收藏备用,结合自身场景选择合适时机引入使用。

📚 深入学习 开源AI工具:Go web爬虫
查看分步骤安装教程和完整使用指南,快速上手这款工具
🌐 原始信息
原始名称 doc-scraper
原始描述 开源AI工具:Go web crawler to scrape documentation sites and convert content to clean Markdo。⭐91 · Go
Topics web-scrapergollmdata-preparation
GitHub https://github.com/Sriram-PR/doc-scraper
License Apache-2.0
语言 Go
🔗 原始来源
🐙 GitHub 仓库  https://github.com/Sriram-PR/doc-scraper

收录时间:2026-05-21 · 更新时间:2026-05-22 · License:Apache-2.0 · AI Skill Hub 不对第三方内容的准确性作法律背书。