Python 使用HTMLParser获取带引号的属性
我使用从各种网页获取数据,它工作得很好,我可以得到我想要的,除了以下属性:Python 使用HTMLParser获取带引号的属性,python,quotes,html-parser,Python,Quotes,Html Parser,我使用从各种网页获取数据,它工作得很好,我可以得到我想要的,除了以下属性: data-diffusion-title=""Soigner des gens ça rend malade"" 问题在于,它包含编码的引号字符,该字符被视为属性的结尾。因此,我们没有: name=data-diffusion-title value="Soigner des gens ça rend malade" 我得到多个名称/值(值均为空
data-diffusion-title=""Soigner des gens ça rend malade""
问题在于,它包含编码的引号字符,该字符被视为属性的结尾。因此,我们没有:
name=data-diffusion-title
value="Soigner des gens ça rend malade"
我得到多个名称/值(值均为空):
如何在不让HTMLPasser将编码的引号字符解释为引号的情况下获得完整属性
编辑:添加代码
class ExtractShowDataHTMLParser(HTMLParser):
'''Extract shows data from the HTML extracted in ExtractShowsHTMLParser()
'''
def __init__(self):
HTMLParser.__init__(self)
self.title = ""
self.show_url = ""
self.show_date = None
self.show_link_mp3 = ""
self.show_id = ""
def handle_starttag(self, tag, attrs):
if 'button' == tag:
for name, value in attrs:
if 'data-diffusion-title' == name:
self.title = value
elif 'data-diffusion-path' == name:
self.show_url = value
elif 'data-url' == name:
self.show_link_mp3 = value
elif 'data-xiti-id' == name:
self.show_id = value
def handle_endtag(self, tag):
pass
def handle_data(self, data):
pass
def get_show_title(self):
return self.title
def get_show_url(self):
return self.show_url
def get_show_date(self):
return self.show_date
def get_show_audio_link(self):
return self.show_link_mp3
def get_show_id(self):
return self.show_id
show_parser = ExtractShowDataHTMLParser()
show_parser.feed(show)
我不能复制这个。你能展示你的解析代码,以及在解析之前获取或处理html的代码吗?你的解析器对我有用。能否为
ExtractShowsHTMLParser
添加代码?@当您添加它时,请告诉我-谢谢。谢谢@snakecharmerb我的问题来自第一次提取数据,我通过使用:div\u contents.replace(“,”)
来解决它,以便放回原始字符串
class ExtractShowDataHTMLParser(HTMLParser):
'''Extract shows data from the HTML extracted in ExtractShowsHTMLParser()
'''
def __init__(self):
HTMLParser.__init__(self)
self.title = ""
self.show_url = ""
self.show_date = None
self.show_link_mp3 = ""
self.show_id = ""
def handle_starttag(self, tag, attrs):
if 'button' == tag:
for name, value in attrs:
if 'data-diffusion-title' == name:
self.title = value
elif 'data-diffusion-path' == name:
self.show_url = value
elif 'data-url' == name:
self.show_link_mp3 = value
elif 'data-xiti-id' == name:
self.show_id = value
def handle_endtag(self, tag):
pass
def handle_data(self, data):
pass
def get_show_title(self):
return self.title
def get_show_url(self):
return self.show_url
def get_show_date(self):
return self.show_date
def get_show_audio_link(self):
return self.show_link_mp3
def get_show_id(self):
return self.show_id
show_parser = ExtractShowDataHTMLParser()
show_parser.feed(show)