从python压缩(最小化)HTML

Joh*_*son 11 html python google-app-engine

如何从python中压缩(最小化)HTML; 我知道我可以使用一些正则表达式去除空格和其他东西,但我想要一个真正的编译器使用纯python(因此它可以在Google App Engine上使用).

我在一个在线html压缩器上做了测试,它节省了65%的html大小.我想要那个,但是来自python.

小智 17

你可以使用htmlmin来缩小你的html:

import htmlmin

html = """
<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Case</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body> 
<div class="container">
  <h2>Well</h2>
  <div class="well">Basic Well</div>
</div>
</body>
</html>
"""

minified = htmlmin.minify(html.decode("utf-8"), remove_empty_space=True)
print(minified)
Run Code Online (Sandbox Code Playgroud)

  • @rjurney 是的,如果性能不是完美最佳,我们必须认为它在所有情况下都完全无用。我们都知道,伟大的成就完全取决于技术的性能。- 我讽刺的自己 (5认同)

Luk*_*ann 6

htmlminhtml_slimmer是一些简单的 Python html 缩小工具。我有数百万个 html 页面存储在我的数据库中并运行 htmlmin,我能够将页面大小减少 5% 到 50%。它们都没有在完整的 html 缩小(即字体颜色 #00000 可以减少到 #000)方面做得最好,但这是一个好的开始。我有一个运行 htmlmin 的 try/except 块,然后如果失败,则使用 html_slimmer,因为 htmlmin 似乎提供了更好的压缩,但它不支持非 ascii 字符。

示例代码:

import htmlmin
from slimmer import html_slimmer # or xhtml_slimmer, css_slimmer
try:
    html=htmlmin.minify(html, remove_comments=True, remove_empty_space=True)
except:
    html=html_slimmer( html.strip().replace('\n',' ').replace('\t',' ').replace('\r',' ')  )
Run Code Online (Sandbox Code Playgroud)

祝你好运!


Xav*_*lle 5

我想在GAE中确实不需要缩小您的html,因为GAE已经在GAE(Community Wiki)上将Caching&GZip压缩为gzip。

我没有进行测试,但是缩小版的html可能只会赢得1%的大小,因为一旦两个版本都被压缩,它只会删除空间。

如果您想保存存储(例如通过memcached进行存储),则比通过python删除空间更感兴趣(即使在较低的压缩级别下),如在python中那样,它可能会更小,更快,而不是纯python。

  • 压缩后删除原始HTML的65%可能不会节省65%,但是仍然可以节省一些内容。 (6认同)