gpt4 book ai didi

python - Python 中的 HTML 截断

转载 作者:太空狗 更新时间:2023-10-29 14:41:32 26 4
gpt4 key购买 nike

是否有纯 Python 工具来获取一些 HTML 并将其截断为尽可能接近给定的长度,但要确保生成的代码段格式正确?例如,给定这个 HTML:

<h1>This is a header</h1>
<p>This is a paragraph</p>

它不会产生:

<h1>This is a hea

但是:

<h1>This is a header</h1>

或至少:

<h1>This is a hea</h1>

虽然我找到了一个依赖于 pullparser 的工具,但我找不到一个可行的工具,它既过时又死了。

最佳答案

我不认为你需要一个成熟的解析器 - 你只需要将输入字符串标记为以下之一:

  • 正文
  • 打开标签
  • 关闭标签
  • 自闭标签
  • 字符实体

一旦您有了这样的 token 流,就可以轻松地使用堆栈来跟踪哪些标签需要关闭。我实际上在前一段时间遇到了这个问题并写了一个小库来做到这一点:

https://github.com/eentzel/htmltruncate.py

它对我来说效果很好,并且可以很好地处理大多数极端情况,包括任意嵌套的标记、将字符实体计为单个字符、在格式错误的标记上返回错误等。

它将产生:

<h1>This is a hea</h1>

以你的例子为例。这也许可以改变,但在一般情况下很难——如果你想截断到 10 个字符,但是 <h1> 怎么办?标签没有关闭另一个,比如 300 个字符?

关于python - Python 中的 HTML 截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4970426/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com