海外访问:www.kdjingpai.com
Ctrl + D 收藏本站

WaterCrawl 是一个强大的开源网页爬虫工具,旨在帮助用户从网页中提取数据并将其转化为适合大语言模型(LLM)处理的数据格式。它基于 Python 开发,结合 Django、Scrapy 和 Celery 技术,支持高效的网页爬取和数据处理。WaterCrawl 提供多种语言的 SDK,包括 Node.js、Go 和 PHP,方便开发者集成到不同项目中。用户可以通过 Docker 快速部署,或者使用提供的 API 进行自定义开发。它的设计目标是简化网页数据提取流程,适合需要处理大量网页内容的开发者和企业。

功能列表

  • 高效网页爬取:支持自定义爬取深度、速度和目标内容,快速获取网页数据。
  • 数据提取与清洗:自动过滤无关标签(如脚本、样式),提取主要内容并支持多种输出格式(如 JSON、Markdown)。
  • 多语言 SDK 支持:提供 Node.js、Go、PHP 和 Python 的 SDK,满足不同开发需求。
  • 实时进度监控:通过 Celery 提供爬取任务的实时状态更新。
  • Docker 部署支持:使用 Docker Compose 快速搭建本地或生产环境。
  • MinIO 集成:支持文件存储和下载,适合处理大规模数据。
  • 插件扩展:提供插件框架,允许开发者自定义爬取和处理逻辑。
  • API 集成:支持通过 API 管理爬取任务、获取结果或下载数据。

使用帮助

WaterCrawl 的安装和使用主要面向开发者和技术团队,适合熟悉 Python 和 Docker 的用户。以下是详细的安装和使用流程。

安装流程

  1. 克隆仓库
    首先,克隆 WaterCrawl 的 GitHub 仓库到本地:

    git clone https://github.com/watercrawl/watercrawl.git
    cd watercrawl
    

这会下载 WaterCrawl 的源代码到你的本地环境。

  1. 安装 Docker
    确保你的系统中已安装 Docker 和 Docker Compose。如果没有,请访问 Docker 官方网站 下载并安装。
  2. 配置环境变量
    进入 docker 目录,复制示例环境配置文件:

    cd docker
    cp .env.example .env
    

    编辑 .env 文件,配置必要的参数,例如数据库连接、MinIO 存储地址等。如果部署在非本地环境(如云服务器),必须更新 MinIO 配置:

    MINIO_EXTERNAL_ENDPOINT=your-domain.com
    MINIO_BROWSER_REDIRECT_URL=http://your-domain.com/minio-console/
    MINIO_SERVER_URL=http://your-domain.com/
    

    这些设置确保文件上传和下载功能正常工作。更多配置详情可参考 DEPLOYMENT.md 文件。

  3. 启动 Docker 容器
    使用 Docker Compose 启动服务:

    docker compose up -d
    

    这会启动 WaterCrawl 的核心服务,包括 Django 后端、Scrapy 爬虫和 MinIO 存储。

  4. 访问应用
    打开浏览器,访问 http://localhost 检查服务是否运行正常。如果部署在远程服务器,替换 localhost 为你的域名或 IP 地址。

功能操作流程

WaterCrawl 的核心功能是网页爬取和数据提取,以下是主要功能的详细操作步骤。

网页爬取

WaterCrawl 使用 Scrapy 框架进行网页爬取,用户可以通过 API 或命令行发起爬取任务。例如,发起一个爬取任务:

{
"url": "https://example.com",
"pageOptions": {
"exclude_tags": ["script", "style"],
"include_tags": ["p", "h1", "h2"],
"wait_time": 1000,
"only_main_content": true,
"include_links": true,
"timeout": 15000
},
"sync": true,
"download": true
}
  • 参数说明
    • exclude_tags:过滤掉指定的 HTML 标签(如脚本和样式)。
    • include_tags:仅提取指定的标签内容。
    • only_main_content:只提取网页的主要内容,忽略侧边栏、广告等。
    • include_links:是否包含页面中的链接。
    • timeout:设置爬取超时时间(毫秒)。
  • 操作步骤
    1. 使用 SDK(如 Python 或 Node.js)或直接通过 API 发送上述 JSON 请求。
    2. WaterCrawl 会返回爬取结果,包含提取的文本、链接或其他指定数据。
    3. 结果可以保存为 JSON、Markdown 或其他格式。

数据下载

WaterCrawl 支持将爬取结果保存为文件。例如,下载站点地图:

{
"crawlRequestId": "uuid-of-crawl-request",
"format": "json"
}
  • 操作步骤
    1. 获取爬取任务的 ID(通过 API 或任务列表查看)。
    2. 使用 API 发送下载请求,指定输出格式(如 JSON、Markdown)。
    3. 下载的文件会存储在 MinIO 中,访问 MinIO 控制台即可获取。

实时监控

WaterCrawl 使用 Celery 提供任务状态监控。用户可以通过 API 查询任务进度:

curl https://app.watercrawl.dev/api/tasks/<task_id>

返回的任务状态包括“进行中”、“完成”或“失败”,帮助用户实时掌握爬取进度。

插件开发

WaterCrawl 支持插件扩展,开发者可以基于提供的 Python 插件框架创建自定义功能:

  1. 安装 watercrawl-plugin 包:
    pip install watercrawl-plugin
    
  2. 使用提供的抽象类和接口开发插件,定义爬取逻辑或数据处理流程。
  3. 将插件集成到 WaterCrawl 主程序中,运行自定义任务。

注意事项

  • 如果部署在生产环境,确保更新 .env 文件中的数据库和 MinIO 配置,否则可能导致文件上传或下载失败。
  • 避免在 GitHub 公开讨论安全问题,相关问题请发送至 support@watercrawl.dev
  • 建议定期检查 WaterCrawl 的 GitHub 仓库,获取最新更新和修复。

应用场景

  1. 大模型数据准备
    开发者需要为大语言模型提供高质量的训练数据。WaterCrawl 可以快速从目标网站爬取文本内容,清洗无关数据,输出结构化的 JSON 或 Markdown 文件,适合直接用于模型训练。
  2. 市场研究
    企业需要分析竞争对手的网站内容或行业动态。WaterCrawl 能批量爬取目标网页,提取关键信息(如产品描述、价格、新闻),帮助企业快速汇总市场数据。
  3. 内容聚合
    新闻或博客平台需要从多个网站收集文章。WaterCrawl 支持自定义爬取规则,自动提取文章标题、正文和链接,生成统一格式的内容库。
  4. SEO 优化
    SEO 专家可以使用 WaterCrawl 爬取网站地图和页面链接,分析网站结构和内容分布,优化搜索引擎排名。

QA

  1. WaterCrawl 支持哪些编程语言的 SDK?
    WaterCrawl 提供 Node.js、Go、PHP 和 Python 的 SDK,覆盖多种开发场景。每个 SDK 都支持完整的 API 功能,方便集成。
  2. 如何处理爬取任务失败?
    检查任务状态,确认是否因超时或网络问题失败。调整 timeout 参数或检查目标网站的反爬机制。必要时联系 support@watercrawl.dev
  3. 是否支持非技术用户?
    WaterCrawl 主要面向开发者,需具备 Python 或 Docker 基础。非技术用户可能需要技术团队协助部署和使用。
  4. 如何扩展 WaterCrawl 的功能?
    使用 watercrawl-plugin 包开发自定义插件,定义特定的爬取或数据处理逻辑,集成到主程序中运行。
0已收藏
0已赞

相关推荐

找不到AI工具?在这试试!

输入关键词,即可 无障碍访问 必应 搜索,快速找到本站所有 AI 工具。

邮箱

联系我们

回顶部

zh_CN简体中文