html 中 base 64 编码字符串的结构

Structure of base 64 encoded strings in html

我下载了带有 Selenium (Python) 的网站的页面源代码 (html)。我希望在 html 文件中找到所有 base 64 编码的字符串。

htmls 中的所有 base 64 编码字符串是否有已知结构?根据我的观察,它似乎以 ;base64 开头,然后是十六进制字符串,最后是右括号 )。准确吗?

来自维基百科,十六进制字符串也必须由以下内容组成:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/。有人也可以证实吗?

非常感谢!

* 编辑 1 *

非常感谢特里斯!您提供的 link 非常有帮助!但是,据此看来,base 64 字符串的结尾似乎没有特定格式。如果我想检测它的结束,除了),你还有什么建议?

我主要想跟踪一堆网站的变化,base64编码包含很多与我使用无关的数据。因此,为了节省存储空间,我打算删除它们。一个例子是 www.amd.com,它有以下 data:image/png;base64,...(在被浏览器渲染后)。

由于有很多不同的网站,我不知道它们的所有格式。以下是我发现但对我没有用的 base64 字符串的其他一些示例:

data:font/truetype;base64,AAEAAA...

data:image/png;base64,iVBORw0KG...

对于我看到的几个示例,它们都以右括号 ) 结尾。那么请问在什么情况下他们会以 ) 结尾,否则呢?

再次感谢!

并非所有 base64 编码字符串的开头都会包含 ;base64 -- 这通常特定于 data URLs。如果您专门寻找 base64 编码的图像或其他内联元素,否则这些元素将通过 HTTP URL 引用,这可能没问题。右括号通常不相关,我没有看到数据 URLs 或其他 base64 编码的字符串需要这样做。

通常,base64 编码的字符串使用您提到的字母 -- ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/。如果编码长度不是 3 字节的倍数,则在末尾填充适当数量的 = 个字符。

Web 上还有另一种常用的 base64 格式 -- URL-safe base64 格式。在这种编码中,+/ 通常替换为 -_,因此它们可以安全地包含在 URL 中,因此得名。

除了 "they contain base64-encoded string data."

之外,如果您对要解析的网站的结构了解更多,则此信息可能无关紧要