You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用NiFi提取HTML页面中所有href属性内的路径

NiFi提取HTML中href路径的配置方法

整体处理链路

直接用NiFi原生处理器即可完成需求,推荐流程如下:

  • 源数据获取处理器:根据HTML来源选择,拉取远程网页用InvokeHTTP,读取本地HTML文件用GetFile
  • 核心提取处理器:ExtractText,通过正则匹配所有href属性的路径值
  • 内容替换处理器:ReplaceText,将原有HTML内容替换为提取到的路径列表
  • 可选处理器:如果需要把每条路径拆成独立流文件,加SplitText,行拆分计数设为1即可;如果需要过滤特定路径,加RouteOnContent配置匹配规则即可
  • 输出处理器:按存储需求选择,存本地用PutFile,发消息队列用对应发布处理器即可

核心配置细节

1. ExtractText处理器配置

新增自定义动态属性,配置如下:

  • 属性名:all_href
  • 属性值(正则表达式):(?i)<a\s+href="([^"]+)"
  • 该属性的配置项调整:
    • 开启「不区分大小写匹配」
    • 开启「匹配所有符合项」
    • 开启「捕获组启用」
      其余配置保持默认即可。运行后所有匹配到的href路径会被存入流文件的all_href属性中,多条路径默认以换行符分隔。

2. ReplaceText处理器配置

用来把原有HTML流内容替换为提取到的路径列表,配置如下:

  • 替换策略:始终替换
  • 搜索值:.*(匹配原有全部HTML内容,开启单行匹配模式)
  • 替换值:${all_href}
  • 字符集:UTF-8
    处理完成后,流文件内容就是逐行排列的href路径,和要求的输出格式完全一致。

结果校验

处理完成后预览流文件内容,即可得到如下格式的结果:

/Reports/Current/
/Reports/Current/DispatchIS_Reports/DUPLICATE/
/Reports/Current/DispatchIS_Reports/PUBLIC_DISPATCHIS_202206262235_0000000365889273.zip
/Reports/Current/DispatchIS_Reports/PUBLIC_DISPATCHIS_202206262240_0000000365889453.zip
/Reports/Current/DispatchIS_Reports/PUBLIC_DISPATCHIS_202206262245_0000000365889621.zip
/Reports/Current/DispatchIS_Reports/PUBLIC_DISPATCHIS_202206262250_0000000365889822.zip
/Reports/Current/DispatchIS_Reports/PUBLIC_DISPATCHIS_202206262255_0000000365889975.zip
/Reports/Current/DispatchIS_Reports/PUBLIC_DISPATCHIS_202206262300_0000000365890155.zip
/Reports/Current/DispatchIS_Reports/PUBLIC_DISPATCHIS_202206262305_0000000365890351.zip

如果需要排除特定路径(比如给出的期望结果中未包含最后一条2305的zip文件),直接在ReplaceText后新增一个ReplaceText处理器,搜索值填写要排除的路径加换行符,替换值留空即可删除对应行。

注:该方案针对目录列表类HTML页面适配,这类页面格式固定,正则匹配的稳定性足够,不需要引入额外的HTML解析处理器,配置简单效率高。

内容的提问来源于stack exchange,提问作者Sumit Manna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 14:06:29