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

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

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


一、核心原理对比

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

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

1. 实现代码对比
# 使用 LLMExtractionStrategy(伪代码)
from crawl4ai import LLMExtractionStrategy

extractor = LLMExtractionStrategy(
    instruction="提取所有包含'韩立'的图片链接,且图片宽度大于高度",
    output_schema={"images": ["url"]}
)
result = extractor.extract(html_content)
# 使用正则表达式
import re

pattern = 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()

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一刀到底211

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值