gpt4 book ai didi

python - 在 Python 中将包含 html 标签的字符串拆分为其构建 block

转载 作者:行者123 更新时间:2023-12-01 00:34:19 25 4
gpt4 key购买 nike

我有如下字符串:

part one<p>part two</p><p>part three <a href="/links/link1">part four</a>part five</p><li>part six <a href="/links/link2">part seven</a>part eight</li>

我想生成一个Python列表,例如:

['part one','part two','part three','/links/link1','part four','part five','part six','/links/link2','part seven','part eight']

列表中的顺序应遵循字符串中出现的顺序。字符串可能没有/更多/更少标签和嵌套标签。

我已经阅读了一些相当相似问题的答案,但找不到解决此特定问题的答案。我尝试过像 BeautifulSoup 之类的包,但无法提取所有部分和出现的顺序。

我很感激任何帮助。谢谢。

最佳答案

您可以使用内置的 HTML 解析器类来遍历字符串并跟踪您需要的位。

from html.parser import HTMLParser


class BuildingBlocksParser(HTMLParser):
def __init__(self):
super().__init__()
self.bits = []

def handle_starttag(self, tag, attrs):
for key, value in attrs:
self.bits.append(value)

def handle_data(self, data):
self.bits.append(data)


parser = BuildingBlocksParser()
parser.feed(
'part one<p>part two</p><p>part three <a href="/links/link1">part four</a>part five</p><li>part six <a href="/links/link2">part seven</a>part eight</li>'
)
print(parser.bits)

输出

['part one', 'part two', 'part three ', '/links/link1', 'part four', 'part five', 'part six ', '/links/link2', 'part seven', 'part eight']

关于python - 在 Python 中将包含 html 标签的字符串拆分为其构建 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57922988/

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