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

如何用Bash从HTML文件中提取Base64编码的PNG图片字符串?

提取HTML中Base64编码的PNG并保存

方法一:结合xmllint与sed处理

先通过xmllint提取img标签的src属性值,再用sed剥离多余内容:

xmllint --xpath "string(//img/@src)" your-file.html | sed -E 's/^data:image\/png;base64,(.*?) .*$/\1/' | base64 -d > output.png
  • xmllint 提取src属性的完整内容(因原HTML中src引号未闭合,会包含后续的class/style内容)
  • sed 正则匹配捕获data:image/png;base64,后到第一个空格前的所有字符,仅保留Base64字符串
  • base64 -d 解码并写入PNG文件

方法二:直接用grep+sed处理(无需依赖XML解析)

如果HTML语法不规范导致xmllint解析异常,可直接通过文本匹配提取:

grep -o "data:image/png;base64,[^ ]*" your-file.html | sed 's/^data:image\/png;base64,//' | base64 -d > output.png
  • grep -o 仅输出匹配到的data:image/png;base64,开头、直到空格结束的片段
  • sed 移除Base64前缀,再解码保存

方法三:用awk分割提取

xmllint --xpath "string(//img/@src)" your-file.html | awk -F 'data:image/png;base64,| ' '{print $2}' | base64 -d > output.png
  • 以data:image/png;base64,和空格作为分隔符,取第二部分即为目标Base64字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 23:10:24