gpt4 book ai didi

Python:在不拆分数据的情况下转义特殊字符

转载 作者:太空狗 更新时间:2023-10-30 02:46:23 24 4
gpt4 key购买 nike

我制作了一个简单的 HTML 解析器,它基本上是从文档中直接复制的。我无法在不将数据拆分为多个 block 的情况下转义特殊字符。

这是我的代码和一个简单的例子:

from HTMLParser import HTMLParser

class MyHTMLParser(HTMLParser):
def __init__(self):
HTMLParser.__init__(self)
self.data = []

def handle_starttag(self, tag, attrs):
#print (tag,attrs)
pass

def handle_endtag(self, tag):
#print (tag)
pass

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

def handle_charref(self, ref):
self.handle_entityref("#" + ref)

def handle_entityref(self, ref):
self.handle_data(self.unescape("&%s;" % ref))



n = "<strong>I &lt;3s U &amp; you luvz me</strong>"


parser = MyHTMLParser()
parser.feed(n)
parser.close()
data = parser.data
print(data)

问题是这会返回 5 个独立的数据位

['I ', u'<', '3s U ', u'&', ' you luvz me']

我想要的是单个字符串:

['I <3s U & you luvz me']

谢谢日语

最佳答案

使用 str.join 加入字符串列表:

>>> ''.join(['I ', u'<', '3s U ', u'&', ' you luvz me'])
u'I <3s U & you luvz me'

或者,您可以使用外部库,例如 lxml :

>>> import lxml.html
>>> n = "<strong>I &lt;3s U &amp; you luvz me</strong>"
>>> root = lxml.html.fromstring(n)
>>> root.text_content()
'I <3s U & you luvz me'

关于Python:在不拆分数据的情况下转义特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20876077/

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