![](/img/trans.png)
[英]Python: Decoding base64 encoded strings within an HTML file and replacing these strings with their decoded counterpart
[英]Structure of base 64 encoded strings in html
我用 Selenium (Python) 下载了网站的页面源代码 (html)。 我希望在 html 文件中找到所有 base 64 编码的字符串。
html中所有base 64编码的字符串是否有已知的结构? 根据我的观察,它似乎以;base64
开头,然后是十六进制字符串,最后是右括号)
。 那准确吗?
从 Wikipedia 中,十六进制字符串还必须由以下内容组成: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
。 有人也可以确认吗?
提前非常感谢!
* 编辑 1 *
非常感谢 Tris,您提供的链接非常有帮助,但是。 由此看来,base 64 字符串的结尾似乎没有特定的格式。 如果我想检测它的结束,除了)
之外,你会给出什么建议?
我主要是想跟踪一堆网站的变化,而base64编码中包含很多与我使用无关的数据。 因此,为了节省存储空间,我打算删除它们。 一个例子是www.amd.com
,它有以下data:image/png;base64,...
(被浏览器渲染后)。
由于有许多不同的网站,我不知道它们的所有格式。 以下是我发现但对我没有用的 base64 字符串的其他一些示例:
data:font/truetype;base64,AAEAAA...
data:image/png;base64,iVBORw0KG...
对于我看到的几个示例,它们都以右括号)
结尾。 请问在什么情况下他们会以)
结束,否则?
再次感谢!
并非所有 base64 编码的字符串都会在开头包含;base64
- 这通常特定于数据 URL 。 如果您专门寻找 base64 编码的图像或其他内联元素,否则这些元素将被 HTTP URL 引用,这可能没问题。 右括号通常不相关,我还没有看到数据 URL 或其他 base64 编码字符串所需的。
通常,base64 编码的字符串使用您提到的字母表—— ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
。 如果编码长度不是 3 个字节的倍数,则在末尾用适当数量的=
字符填充。
web 上还有另一种常用的 base64 格式—— URL-safe base64 格式。 在这种编码中, +
和/
通常被替换为-
和_
,因此它们可以安全地包含在 URL 中,因此得名。
如果您了解更多关于您尝试解析的网站的结构,则此信息可能无关紧要,除了“它们包含 base64 编码的字符串数据”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.