您可以采用递归方法:
from pprint import pprintfrom bs4 import BeautifulSouptext = """your html goes here"""def find_li(element): return [{li.a['href']: find_li(li)} for ul in element('ul', recursive=False) for li in ul('li', recursive=False)]soup = BeautifulSoup(text, 'html.parser')data = find_li(soup)pprint(data)
印刷品:
[{u'Page1_Level1.html': [{u'Page1_Level2.html': [{u'Page1_Level3.html': []}, {u'Page2_Level3.html': []}, {u'Page3_Level3.html': []}]}]}, {u'Page2_Level1.html': [{u'Page2_Level2.html': []}]}]
仅供参考,这就是为什么我必须在
html.parser这里使用的原因:
- 不要自动放置html,head和body标签,Beautifulsoup
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)