当前位置: 首页 > news >正文

ai agent(智能体)开发 python高级应用8:crawl4ai 对用 LLMExtractionStrategy 和 python的 re 如何选择

我们在用crawl4ai 抓取数据后,对数据的提取,对于LLMExtractionStrategy 和re 我们如何选择

下面是关于 crawl4ai 的 LLMExtractionStrategyPython正则表达式(re 的对比分析,


一、核心原理对比

维度LLMExtractionStrategyPython正则表达式 (re)
底层机制基于大语言模型(如GPT)的语义理解基于预定义模式的字符串匹配
工作方式理解上下文语义,动态推断数据关系通过固定规则(正则语法)硬编码匹配逻辑
灵活性高(可处理非结构化、动态变化的内容)低(依赖固定模式,结构变化需手动调整正则)
学习成本中高(需理解LLM API和提示工程)低(标准语法,开发者普遍熟悉)

二、性能对比(以提取含"韩立"的图片为例)

1. 实现代码对比
# 使用 LLMExtractionStrategy(伪代码)
from crawl4ai import LLMExtractionStrategyextractor = LLMExtractionStrategy(instruction="提取所有包含'韩立'的图片链接,且图片宽度大于高度",output_schema={"images": ["url"]}
)
result = extractor.extract(html_content)
# 使用正则表达式
import repattern = r'\* \[!\[\]\(([^)]+)\)[^\[]*?\[([^\]]+)\]'
matches = re.findall(pattern, html_content)
filtered = [url for url, title in matches if '韩立' in title and 'w=(\d+)&h=(\d+)' and int(w) > int(h)
]
2. 性能指标
指标LLMExtractionStrategy正则表达式
开发速度快(无需编写复杂规则)慢(需调试正则语法)
执行速度较慢(依赖模型推理)极快(纯字符串操作)
内存消耗高(需加载LLM模型)低(无额外依赖)
可扩展性强(通过修改指令适应新需求)弱(需重写正则)

三、准确性对比(相同测试数据)

场景LLMExtractionStrategy正则表达式
标准格式匹配✅ 准确(理解语义)✅ 准确(模式匹配)
标题含变体(如"韩立_")✅ 自动识别(语义泛化)❌ 需修改正则(如添加韩立[\W_]*
尺寸参数位置变化✅ 自动解析(如h=600&w=800❌ 需调整正则(如`(w
多语言混合内容✅ 支持(跨语言理解)❌ 无法处理非目标语言内容

四、适用场景推荐

场景推荐工具理由
结构化数据(如固定表格)✅ 正则表达式快速精准,资源消耗低
动态/半结构化内容(如论坛)✅ LLMExtractionStrategy适应布局变化,减少规则维护
多语言混合页面✅ LLMExtractionStrategy跨语言语义理解优势
高实时性要求(如秒级响应)✅ 正则表达式避免模型推理延迟
数据关联性提取(如人物关系)✅ LLMExtractionStrategy利用上下文推理能力

五、核心结论

  1. 选择正则表达式 (re) 当

    • 数据模式固定且简单
    • 对性能要求极高(低延迟、高吞吐)
    • 无复杂语义关联需求
  2. 选择 LLMExtractionStrategy

    • 处理动态或非结构化内容
    • 需要跨语言/泛化能力
    • 可接受一定延迟以换取开发效率

六、混合方案建议

对于实际项目,可 组合使用两者 实现最佳效果:

# 先用正则快速过滤,再用LLM精细提取
import re
from crawl4ai import LLMExtractionStrategy# 第一步:正则粗筛
pattern = r'<img .*?src="([^"]+)"'  # 提取所有图片
image_urls = re.findall(pattern, html_content)# 第二步:LLM精准过滤
extractor = LLMExtractionStrategy(instruction="筛选宽度>高度且含'韩立'的图片",input_data={"images": image_urls}
)
final_images = extractor.extract()

最后,大部分情况下,很可能是两者相结合

相关文章:

  • 存储地图上的各种形状的文件格式.SHP文件介绍
  • python学习day2(未写完,明天继续补充)
  • AI大模型:技术演进、核心原理与产业解析
  • AutoMouser - 单次AI调用铸就高效自动化脚本
  • Xshell实战:远程连接VMware CentOS7虚拟机与高效运维指南——从零配置到自动化操作,解锁Xshell的核心价值
  • 湖北理元理律师事务所观察:债务服务中的“倾听者价值”
  • 系统架构设计-案例分析总结
  • 人工智能、机器学习与深度学习:全面介绍与对比分析
  • 【Unity 2023 新版InputSystem系统】新版InputSystem 如何进行人物移动(包括配置、代码详细实现过程)
  • Financing | 巴菲特查理芒格投资理念
  • Windows环境安装LibreOffice实现word转pdf
  • 设备数据看板助力自动化工厂实现生产智能精细化管理
  • 通用简洁工作汇报项目评估营销策划工作总结年终汇报PPT模版8套一组分享
  • VAPO:视觉-语言对齐预训练(对象级语义)详解
  • Visual Studio构建三剑客:生成/重新生成/清理解决方案的正确打开方式
  • 项目记录:「五秒反应挑战」小游戏的开发全过程
  • 在嵌入式系统中, 一般链路层断开多久,断开TCP为好
  • 数据库-oracle-包-视图传参
  • Git本地使用小Tips
  • Axure疑难杂症:垂直菜单展开与收回(4大核心问题与专家级解决方案)
  • 一季度支持科技创新和制造业发展减税降费及退税4241亿元
  • 《缶翁的世界》首发:看吴昌硕等湖州籍书画家的影响
  • 哪条线路客流最大?哪个站点早高峰人最多?上海地铁一季度客流报告出炉
  • 韧性十足的中国外贸企业:“不倒翁”被摁下去,还会再弹起来
  • 哈马斯官员:若实现永久停火,可交出加沙地带控制权
  • 上海高院与上海妇联签协议,建立反家暴常态化联动协作机制