📜  python从列表项中删除html - Html(1)

📅  最后修改于: 2023-12-03 15:19:31.754000             🧑  作者: Mango

Python 从列表项中删除 HTML - Html

在处理存有 HTML 内容的列表时,有时候需要将 HTML 标签去掉,只保留纯文本内容。Python 提供了多种方法来实现这个任务。

方法 1 - 使用正则表达式

使用正则表达式可以方便地匹配和删除 HTML 标签。可以将所有尖括号及其之间的内容匹配出来,并用空字符串替换。示例如下:

import re

html_list = ["<p>这是一个段落。</p>", "<div>这是一个 DIV。</div>"]
text_list = []

for html in html_list:
    text = re.sub('<[^<]+?>', '', html)
    text_list.append(text)

print(text_list)

输出结果为:

['这是一个段落。', '这是一个 DIV。']

需要注意的是,正则表达式不适用于所有 HTML 内容。对于某些异常的 HTML 内容,可能需要使用其他方法。

方法 2 - 使用 Beautiful Soup

Beautiful Soup 是一种流行的 Python 库,用于解析 HTML 和 XML 文档。它提供了多种方法来处理 HTML 内容。可以使用 Beautiful Soup 提供的 get_text() 方法来提取 HTML 中的纯文本内容,并获得一个包含所有纯文本内容的字符串。示例如下:

from bs4 import BeautifulSoup

html_list = ["<p>这是一个段落。</p>", "<div>这是一个 DIV。</div>"]
text_list = []

for html in html_list:
    soup = BeautifulSoup(html, "html.parser")
    text = soup.get_text()
    text_list.append(text)

print(text_list)

输出结果为:

['这是一个段落。', '这是一个 DIV。']

需要注意的是,使用 Beautiful Soup 可能会涉及一些安装和配置工作,而且可能会增加一些运行时间。

方法 3 - 使用加强型字符串方法

Python 的字符串类提供了多种加强型方法,用于处理字符串。可以使用这些方法来去除 HTML 标签。

html_list = ["<p>这是一个段落。</p>", "<div>这是一个 DIV。</div>"]
text_list = []

for html in html_list:
    text = html.replace("<p>", "").replace("</p>", "").replace("<div>", "").replace("</div>", "")
    text_list.append(text)

print(text_list)

输出结果为:

['这是一个段落。', '这是一个 DIV。']

需要注意的是,这种方法仅适用于 HTML 内容简单的情况。对于嵌套标签等较复杂的 HTML,可能需要使用其他方法。

综上所述,Python 提供了多种方法来从列表项中删除 HTML。可以根据具体情况选择合适的方法。