Crawl4AI 人工智能自动采集数据

文章目录

  • 1 使用 Crawl 的步骤
  • 2 AI 智能体应用实例
  • 3 结语

Crawl是一款免费的开源工具,利用AI技术简化网络爬取和数据提取,提高信息收集与分析的效率。它智能识别网页内容,并将数据转换为易于处理的格式,功能全面且操作简便。

定位:开源AI工具Crawl,简化数据爬取和分析,助力高效提取网站定价信息。
在这里插入图片描述

1 使用 Crawl 的步骤

步骤 1:安装与设置

pip install “crawl4ai @ git+https://github.com/unclecode/crawl4ai.git" transformers torch nltk   

步骤 2:数据提取

创建Python脚本,启动网络爬虫并从URL提取数据:

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

步骤 3:数据结构化

使用LLM(大型语言模型)定义提取策略,将数据转换为结构化格式:

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 模型的输入令牌费用。”) output_fee: str = Field(…, description=“OpenAI 模型的输出令牌费用。”) 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=“”“从爬取的内容中提取所有提到的模型名称以及它们的输入和输出令牌费用。不要遗漏整个内容中的任何模型。提取的模型 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)
1
步骤 4:集成AI智能体

将 Crawl 与 Praison CrewAI 智能体集成,实现高效的数据处理:

pip install praisonai
1
创建工具文件(tools.py)来包装 Crawl 工具:

#tools.py

 import os   from crawl4ai import WebCrawler   from crawl4ai.extraction_strategy import LLMExtractionStrategy   from pydantic import BaseModel, Field   from praisonai_tools import BaseTool      class ModelFee(BaseModel):       llm_model_name: str = Field(..., description="模型的名称。")       input_fee: str = Field(..., description="模型的输入令牌费用。")       output_fee: str = Field(..., description="模型的输出令牌费用。")     class ModelFeeTool(BaseTool):       name: str = "ModelFeeTool"       description: str = "从给定的定价页面提取模型的费用信息。"          def _run(self, url: str):          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=ModelFee.schema(),                   extraction_type="schema", nstruction="""从爬取的内容中提取所有提到的模型名称以及它们的输入和输出令牌费用。不要遗漏整个内容中的任何模型。提取的模型 JSON 格式应该像这样: {"model_name": "GPT-4", "input_fee": "US$10.00 / 1M tokens", "output_fee": "US$30.00 / 1M tokens"}.""" ),    bypass_cache=True,    )          return result.extracted_content      if __name__ == "__main__":      #测试 ModelFeeTool       tool = ModelFeeTool()      url = "https://www.openai.com/pricing"      result = tool.run(url)       print(result)

1
AI智能体配置
配置AI智能体使用Crawl工具进行网络抓取和数据提取。在crewai框架下,我们设定了三个核心角色,共同完成网站模型定价信息的提取任务:

网络爬虫:负责从OpenAI、Anthropic和Cohere等网站抓取定价信息,输出原始HTML或JSON数据。

数据清理员:确保收集的数据准确无误,并整理成结构化的JSON或CSV文件。

数据分析员:分析清理后的数据,提炼出定价趋势和模式,并编制详细报告。

整个流程无需额外依赖,各角色独立完成各自任务。

2 AI 智能体应用实例

以Crawl为基础,Praison-AI智能体能够执行网络抓取、数据清洗和分析工作。它们相互协作,从多个网站抓取定价数据,并汇总成详尽的报告,以展示分析结果。

3 结语

Crawl是一个强大的工具,它赋予AI智能体更高的效率和准确性执行网络爬取和数据提取任务。其开源特性、AI驱动的能力和多功能性,使其成为构建智能且数据驱动智能体的宝贵资产。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/68300.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

KVM/ARM——基于ARM虚拟化扩展的VMM

1. 前言 ARM架构为了支持虚拟化做了些扩展,称为虚拟化扩展(Virtualization Extensions)。原先为VT-x创建的KVM(Linux-based Kernel Virtual Machine)适配了ARM体系结构,引入了KVM/ARM (the Linux ARM hypervisor)。KVM/ARM没有在hypervisor中引入复杂的…

CentOS/Linux Python 2.7 离线安装 Requests 库解决离线安装问题。

root@mwcollector1 externalscripts]# cat /etc/os-release NAME=“Kylin Linux Advanced Server” VERSION=“V10 (Sword)” ID=“kylin” VERSION_ID=“V10” PRETTY_NAME=“Kylin Linux Advanced Server V10 (Sword)” ANSI_COLOR=“0;31” 这是我系统的版本,由于是公司内网…

【go语言】数组和切片

一、数组 1.1 什么是数组 数组是一组数:数组需要是相同类型的数据的集合;数组是需要定义大小的;数组一旦定义了大小是不可以改变的。 1.2 数组的声明 数组和其他变量定义没有什么区别,唯一的就是这个是一组数,需要给…

OpenHarmony 5.0.2 Release来了!

版本概述 OpenHarmony 5.0.2 Release版本对标准系统的能力进行持续完善,以快速迭代的方式推出API 14,相比5.0.1 Release版本,重点做出了如下特性新增或增强: 进一步增强ArkUI、图形图像的能力,提供更多组件的高级属性…

node.js 07.npm下包慢的问题与nrm的使用

一.npm下包慢 因为npm i 默认从npm官网服务器进行下包,但是npm官网服务器是海外服务器所以响应很慢. 于是我们通过npm下包的时候通常用淘宝镜像进行下包,下面是切换到淘宝镜像地址下包的操作. 二.nrm的使用 nrm是一个管理切换npm下包地址的工具,可以快速切换下包的地址. 安…

Windows10官方系统下载与安装保姆级教程【U盘-官方ISO直装】

Windows 10 官方系统安装/重装 制作启动盘的U盘微软官网下载Win10安装包创建启动盘U盘 安装Win10 本文采用U盘安装Windows10官方系统。 制作启动盘的U盘 微软官网下载Win10安装包 微软官网下载Win10安装包链接:https://www.microsoft.com/zh-cn/software-downloa…

存储基础 -- SCSI命令格式与使用场景

SCSI命令格式与使用场景 1. SCSI命令描述符块(CDB) 1.1 CDB基本概念 SCSI命令通过**命令描述符块(CDB, Command Descriptor Block)**表示。 CDB长度:SCSI命令根据使用场景有不同长度的CDB,常见的有6字节…

认知计算与 AI 大模型:数据仓库、数据湖与数据分析的变革力量

大家好,我是秉寒,今天是龙年腊月 27 了,还有两天就是蛇年除夕了,在此借 CSDN,给大家拜年!祝愿大家在新的一年里,技术精进,工作顺遂,代码无 Bug,项目都超神&am…

[MySQL]MySQL数据库的介绍和库相关操作

目录 一、数据库介绍 1.什么是数据库 2.为什么使用数据库 3.数据库的操作运行逻辑 4.MySQL架构 5.SQL语句的分类 二、数据库的操作 1.数据库的连接 2.数据库的操作 创建数据库 查看数据库 显示数据库的创建语句 删除数据库 修改数据库 3.字符集和校验集 查看系…

亚博microros小车-原生ubuntu支持系列:13 激光雷达避障

一 背景知识 小车发了了数据包含激光雷达数据,类型是sensor_msgs/msg/LaserScan bohubohu-TM1701:~$ ros2 node info /YB_Car_Node /YB_Car_Node Subscribers: /beep: std_msgs/msg/UInt16 /cmd_vel: geometry_msgs/msg/Twist /servo_s1: std_msgs/…

机器学习 ---逻辑回归

逻辑回归是属于机器学习里面的监督学习,它是以回归的思想来解决分类问题的一种非常经典的二分类分类器。由于其训练后的参数有较强的可解释性,在诸多领域中,逻辑回归通常用作 baseline 模型,以方便后期更好的挖掘业务相关信息或提…

使用 Vue 3 的 watchEffect 和 watch 进行响应式监视

Vue 3 的 Composition API 引入了 <script setup> 语法&#xff0c;这是一种更简洁、更直观的方式来编写组件逻辑。结合 watchEffect 和 watch&#xff0c;我们可以轻松地监视响应式数据的变化。本文将介绍如何使用 <script setup> 语法结合 watchEffect 和 watch&…

volatile之四类内存屏障指令 内存屏障 面试重点 底层源码

目录 volatile 两大特性 可见性 有序性 总结 什么是内存屏障 四个 CPU 指令 四大屏障 重排 重排的类型 为什么会有重排&#xff1f; 线程中的重排和可见性问题 如何防止重排引发的问题&#xff1f; 总结 happens-before 和 volatile 变量规则 内存屏障指令 写操作…

ES6+新特性,var、let 和 const 的区别

在 JavaScript 中&#xff0c;var、let 和 const 都用于声明变量&#xff0c;但它们有一些重要的区别&#xff0c;主要体现在 作用域、可变性和提升机制 等方面。 1. 作用域&#xff08;Scope&#xff09; var: var 声明的变量是 函数作用域&#xff0c;也就是说&#xff0c;它…

模拟电子技术-常用半导体器件

模拟电子技术-常用半导体器件 一、半导体基础知识二、PN结2.1 PN结简介2.2 PN结正向导电性2.2.1 正向电压2.2.2 反向电压2.2.3 PN结伏安特性 三、二极管3.1 二极管伏安特性曲线3.2 二极管参数和等效电路3.2.1 性能参数3.2.2 等效电路 3.3 二极管限幅和整流应用(正向特性)3.4 稳…

01-02 三元组与七元组

01-02 三元组与七元组 好的&#xff01;以下是关于网络中的 三元组&#xff08;3-Tuple&#xff09; 和 七元组&#xff08;7-Tuple&#xff09; 的详细扩展说明&#xff0c;包括它们的组成、用途以及与五元组的对比。 1. 三元组&#xff08;3-Tuple&#xff09; 组成 三元组…

2024年博客之星主题创作|2024年蓝桥杯与数学建模年度总结与心得

引言 2024年&#xff0c;我在蓝桥杯编程竞赛和数学建模竞赛中投入了大量时间和精力&#xff0c;这两项活动不仅加深了我对算法、数据结构、数学建模方法的理解&#xff0c;还提升了我的解决实际问题的能力。从蓝桥杯的算法挑战到数学建模的复杂应用&#xff0c;我在这些竞赛中…

javascript-es6 (一)

作用域&#xff08;scope&#xff09; 规定了变量能够被访问的“范围”&#xff0c;离开了这个“范围”变量便不能被访问 局部作用域 函数作用域&#xff1a; 在函数内部声明的变量只能在函数内部被访问&#xff0c;外部无法直接访问 function getSum(){ //函数内部是函数作用…

数据的秘密:如何用大数据分析挖掘商业价值

数据的秘密&#xff1a;如何用大数据分析挖掘商业价值 在这个数据爆炸的时代&#xff0c;我们每天都在产生、存储和处理着海量的数据。然而&#xff0c;仅仅拥有数据并不等于拥有价值。就像拥有一座金矿&#xff0c;不开采和提炼&#xff0c;最终只是一堆毫无用处的石头。如何…

使用eNSP配置GRE VPN实验

实验拓扑 实验需求 1.按照图示配置IP地址 2.在R1和R3上配置默认路由使公网区域互通 3.在R1和R3上配置GRE VPN&#xff0c;使两端私网能够互相访问&#xff0c;Tunne1口IP地址如图 4.在R1和R3上配置RIPv2来传递两端私网路由 GRE VPN配置方法&#xff1a; 发送端&#xff1a; …