【问题标题】:Convert HTML String Tag into String Python将 HTML 字符串标记转换为字符串 Python
【发布时间】:2022-01-19 08:28:57
【问题描述】:

我正在尝试使用 Python 将 HTML 字符串标记转换为字符串。

这是我要转换的内容:

htmltxt = "<b>Hello World</b>".

结果应该像 Hello World 一样以粗体显示。但我越来越喜欢

<html><body><b>Hello World</b></body></html>

使用下面的 sn-p 代码

from bs4 import BeautifulSoup
htmltxt = "<b>Hello World</b>"
soup = BeautifulSoup(htmltxt, 'lxml')

谁能建议我如何转换?

【问题讨论】:

标签: python html string


【解决方案1】:

在这种情况下,您尝试从汤对象中查找标签。鉴于这是唯一的一个,并且没有您可以使用的 id 或类名:

hello_world_tag = soup.find("b")
hello_world_tag_text = hello_world_tag.text
print(hello_world_tag_text) # Output: 'Hello World'

这里的关键是'.text'。使用 beautiful soup 查找特定标签将返回整个标签,但 .text 方法仅返回该标签内的文本。

编辑以下评论:

我仍然建议使用 bs4 来解析 html。一旦你有你的文字,如果你想用粗体打印,你可以打印:

print('\033[1m' + text)

【讨论】:

  • 你能建议任何其他方法来将字符转换为粗体而不使用 bs4 吗?这意味着只使用 htmltxt = "Hello World"。
  • 我刚刚进行了编辑以展示如何转换为粗体。我仍然建议使用 bs4 来解析 html,但是另一个选项可能是正则表达式。
【解决方案2】:

注意 你不会得到bold 字符串本身,它总是必须通过解释或格式化来完成。

使用 BeautifulSoup 从 HTML 字符串中提取文本,您可以调用方法 textget_text()

from bs4 import BeautifulSoup
htmltxt = "<b>Hello World</b>"
soup = BeautifulSoup(htmltxt, 'lxml')

soup.text

【讨论】:

  • 谢谢,我知道了。你能建议任何其他方法在不使用 bs4 的情况下将字符转换为粗体吗?这意味着只使用 htmltxt = "Hello World"
  • 这取决于你想要做什么 - 只是打印,然后格式化print(f'\033 {soup.text}') 或输出到 HTML,然后不做任何更改,或者输出到 Markdown,..... 请添加详细信息你想对你的问题做些什么以获得更有针对性的答案。太好了,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-29
  • 1970-01-01
  • 1970-01-01
  • 2011-02-20
  • 2020-11-13
相关资源
最近更新 更多