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 许可证发布。

联系方式 📧

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

祝爬取愉快!🕸️🚀

项目收藏历史

项目收藏历史图表

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

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

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

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

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

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

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多