如何将Html嵌套列表转换为Python';是一个
我有这样的Html列表:如何将Html嵌套列表转换为Python';是一个,python,html,html-lists,Python,Html,Html Lists,我有这样的Html列表: lista = """ <ul> <li>Arts & Entertainment <ul> <li>Celebrities & Entertainment News</li> <li>Comics & Animation <ul> <li>Anime &a
lista = """
<ul>
<li>Arts & Entertainment
<ul>
<li>Celebrities & Entertainment News</li>
<li>Comics & Animation
<ul>
<li>Anime & Manga</li>
<li>Cartoons</li>
<li>Comics</li>
</ul>
</li>
</ul>
</li>
</ul>
"""
lista=”“”
- 艺术及娱乐
- 名人娱乐新闻
- 漫画与动画
- 动漫
- 卡通片
- 漫画
"""
我想将其转换为有用的python结构,以便进一步处理:
你建议什么结构?你会怎么做呢 您可以使用映射类型:Dictionaries,我会这样做:
from BeautifulSoup import BeautifulSoup
from pprint import pprint
def parseList(tag):
if tag.name == 'ul':
return [parseList(item)
for item in tag.findAll('li', recursive=False)]
elif tag.name == 'li':
if tag.ul is None:
return tag.text
else:
return (tag.contents[0].string.strip(), parseList(tag.ul))
soup = BeautifulSoup(lista)
pprint(parseList(soup.ul))
示例输出:
[(u'Arts & Entertainment',
[u'Celebrities & Entertainment News',
(u'Comics & Animation',
[u'Anime & Manga', u'Cartoons', u'Comics'])])]
请注意,对于包含未编号列表的列表项,返回一个元组,其中第一个元素是列表项中的字符串,第二个元素是包含未编号列表内容的列表。您使用的是哪个html解析器?正如@jcollado所说的,我使用的是Beautiful Soup。我必须承认,我在处理它时遇到了一些问题。我想打印维护层次结构的整个列表。例如,使用不同的缩进打印它。。。