c# - 读取包含 Base64-Embedded 格式的所有图像的网页

标签 c# html web

在我的场景中,我想以编程方式下载页面(Internet 上的任何页面)的 HTML,但我还希望 HTML 中的所有图像都采用 base64 嵌入格式(未引用)

换句话说,而不是:

<img src='/images/delete.gif' />

我希望下载的 html 看起来像这样:

<img src="data:image/gif;base64,R0lGODl..." />

这样我就不需要经历将所有图像存储在目录等中的过程。

你们中有人知道如何做到这一点吗?或者任何插件可以有效地做到这一点?

最佳答案

那么,您需要:

  • 下载原始 HTML
  • 在 HTML 中找到每个 img 元素(例如使用 HTML agility pack )并为每个元素:
    • 如果它已经在使用数据 URL,请忽略它
    • 否则:
    • 下载图片
    • 使用 Convert.ToBase64String 将其编码为 Base64
    • 将原始 img 标签替换为使用 base64 版本的标签(在原始字符串中,或​​通过 DOM 表示形式)
  • 将最终的 HTML 保存到磁盘

这些步骤中的任何一个是否给您带来了特定的问题?您可以通过并行下载图像来加快速度,但我会先使用串行版本。

关于c# - 读取包含 Base64-Embedded 格式的所有图像的网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7650924/

相关文章:

c# - 12 小时和 24 小时时间格式的正则表达式

c# - 如何将 FileResult 的 API 响应转换为 Angular 4 中的 pdf 文件?

javascript - 为什么我无法从 AngularJS 甚至纯 JavaScript 获取 __RequestVerificationToken 的值?

html - 我可以在有空格的 URL 中用 & nbsp 替换 % 20 吗?

c# - 删除 Global.asax 仍在执行的代码

c# - LINQ to EF、Left Join 和 group by 子句

javascript - 如何删除谷歌地址自动完成中的一些额外细节?

javascript - HTML 表单将数据 POST 到 MySQL

web-services - Web 服务与 Web 应用程序

php - CSS calc(percent - pixels) 被浏览器解释为 calc(percent - percent)