crawl4ai

crawl4ai

开源网页爬虫框架 支持AI应用和大型语言模型

Crawl4AI是一个开源的网页爬虫框架,为AI应用和大型语言模型优化。该框架支持多URL并行爬取、媒体标签和链接提取、自定义钩子和JavaScript执行,并提供多种数据提取策略。v0.2.77版本改进了Docker支持,升级Selenium,并优化了性能。Crawl4AI简化了网页数据采集过程,为AI开发提供了实用的工具。

Crawl4AI网络爬虫数据提取人工智能开源软件Github开源项目

Crawl4AI v0.2.77 🕷️🤖

GitHub 星标 GitHub 分支 GitHub 问题 GitHub 拉取请求 许可证

Crawl4AI 简化了网络爬虫和数据提取,使其适用于大型语言模型(LLMs)和人工智能应用。🆓🌐

[v0.2.77] - 2024-08-02

功能、性能和跨平台兼容性方面的重大改进!🚀

  • 🐳 Docker 增强
    • 显著改进的 Dockerfile,便于在 Linux、Mac 和 Windows 上安装。
  • 🌐 官方 Docker Hub 镜像
    • 在 Docker Hub 上发布了我们的第一个官方镜像,简化部署流程(unclecode/crawl4ai)。
  • 🔧 Selenium 升级
    • 移除了对 ChromeDriver 的依赖,现在使用 Selenium 的内置功能以获得更好的兼容性。
  • 🖼️ 图像描述
    • 实现了为网页提取的图像生成文本描述的功能。
  • 性能提升
    • 各种改进以提高整体速度和性能。

立即尝试!

✨ 在这里体验 在 Colab 中打开

✨ 访问我们的文档网站

✨ 查看演示

特性 ✨

  • 🆓 完全免费和开源
  • 🤖 适用于 LLM 的输出格式(JSON、清洁的 HTML、markdown)
  • 🌍 支持同时爬取多个 URL
  • 🎨 提取并返回所有媒体标签(图像、音频和视频)
  • 🔗 提取所有外部和内部链接
  • 📚 提取页面的元数据
  • 🔄 用于身份验证、头部和爬取前页面修改的自定义钩子
  • 🕵️ 用户代理自定义
  • 🖼️ 截取页面截图
  • 📜 在爬取前执行多个自定义 JavaScript
  • 📚 各种分块策略:基于主题、正则表达式、句子等
  • 🧠 高级提取策略:余弦聚类、LLM 等
  • 🎯 支持 CSS 选择器
  • 📝 传递指令/关键词以优化提取

Crawl4AI

🌟 向 v0.2.77 的贡献者致敬!

非常感谢这些杰出的贡献者,使这个版本成为可能:

你们的贡献正在推动 Crawl4AI 向前发展!🚀

酷炫示例 🚀

快速入门

from crawl4ai import WebCrawler # 创建 WebCrawler 实例 crawler = WebCrawler() # 预热爬虫(加载必要的模型) crawler.warmup() # 在 URL 上运行爬虫 result = crawler.run(url="https://www.nbcnews.com/business") # 打印提取的内容 print(result.markdown)

如何安装 🛠

使用 pip 🐍

virtualenv venv source venv/bin/activate pip install "crawl4ai @ git+https://github.com/unclecode/crawl4ai.git"

使用 Docker 🐳

# 对于 Mac 用户(M1/M2) # docker build --platform linux/amd64 -t crawl4ai . docker build -t crawl4ai . docker run -d -p 8000:80 crawl4ai

使用 Docker Hub 🐳

docker pull unclecode/crawl4ai:latest docker run -d -p 8000:80 unclecode/crawl4ai:latest

以速度为先的设计 🚀

这个库最重要的设计原则也许就是速度。我们需要确保它能够尽可能快速地并行处理多个链接和资源。将这种速度与 Groq 等快速 LLM 结合起来,结果将会令人惊叹。

import time from crawl4ai.web_crawler import WebCrawler crawler = WebCrawler() crawler.warmup() start = time.time() url = r"https://www.nbcnews.com/business" result = crawler.run( url, word_count_threshold=10, bypass_cache=True) end = time.time() print(f"耗时:{end - start}")

让我们看看上面代码片段的计算时间:

[日志] 🚀 爬取完成,成功:True,耗时:1.3623387813568115 秒 [日志] 🚀 内容提取完成,成功:True,耗时:0.05715131759643555 秒 [日志] 🚀 提取过程,耗时:0.05750393867492676 秒。 总耗时:1.439958095550537

从页面获取内容花费了 1.3623 秒,提取内容花费了 0.0575 秒。🚀

从网页提取结构化数据 📊

从官方页面爬取所有 OpenAI 模型及其费用。

import os from crawl4ai import WebCrawler from crawl4ai.extraction_strategy import LLMExtractionStrategy from pydantic import BaseModel, Field class OpenAIModelFee(BaseModel): model_name: str = Field(..., description="OpenAI 模型的名称。") input_fee: str = Field(..., description="OpenAI 模型的输入 token 费用。") output_fee: str = Field(..., description="OpenAI 模型的输出 token 费用。") url = 'https://openai.com/api/pricing/' crawler = WebCrawler() crawler.warmup() result = crawler.run( url=url, word_count_threshold=1, extraction_strategy= LLMExtractionStrategy( provider= "openai/gpt-4o", api_token = os.getenv('OPENAI_API_KEY'), schema=OpenAIModelFee.schema(), extraction_type="schema", instruction="""从爬取的内容中,提取所有提到的模型名称以及它们的输入和输出 token 费用。 不要遗漏整个内容中的任何模型。一个提取的模型 JSON 格式应该像这样: {"model_name": "GPT-4", "input_fee": "US$10.00 / 1M tokens", "output_fee": "US$30.00 / 1M tokens"}。""" ), bypass_cache=True, ) print(result.extracted_content)

执行 JS、使用 CSS 选择器过滤数据和聚类

from crawl4ai import WebCrawler from crawl4ai.chunking_strategy import CosineStrategy js_code = ["const loadMoreButton = Array.from(document.querySelectorAll('button')).find(button => button.textContent.includes('Load More')); loadMoreButton && loadMoreButton.click();"] crawler = WebCrawler() crawler.warmup() result = crawler.run( url="https://www.nbcnews.com/business", js=js_code, css_selector="p", extraction_strategy=CosineStrategy(semantic_filter="technology") ) print(result.extracted_content)

文档 📚

有关详细文档,包括安装说明、高级功能和 API 参考,请访问我们的文档网站

贡献 🤝

我们欢迎开源社区的贡献。查看我们的贡献指南以获取更多信息。

许可证 📄

Crawl4AI 根据 Apache 2.0 许可证发布。

联系方式 📧

如有问题、建议或反馈,请随时联系:

祝爬取愉快!🕸️🚀

项目收藏历史

项目收藏历史图表

编辑推荐精选

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
商汤小浣熊

商汤小浣熊

最强AI数据分析助手

小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。

imini AI

imini AI

像人一样思考的AI智能体

imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。

Keevx

Keevx

AI数字人视频创作平台

Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。

即梦AI

即梦AI

一站式AI创作平台

提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作

下拉加载更多