[英]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.