python - 从HTML中提取标签和属性 - 这很难

时间:2016-05-23 21:15:25

标签: python html regex parameters tags

经过长时间的挣扎,我设法将一个输入长字符串处理成以下形式 - 一个列表:

['<', 'p', '>', '<', 'a', 'href', '>', '<', 'a', '>', '<', 'p', '>', '<', 'div', 'class', '>', '<', 'a', 'href', '>', '<', 'a', '>', '<', 'div', '>']

我现在如何有效地以硬编码方式处理列表,以获取每个HTML标记及其涵盖的属性?

所以在那之后我会确认p 没有任何属性,a href 并且div有属性?

1 个答案:

答案 0 :(得分:0)

只是为了学术挑战,你可以使用(在Stackoverflow上稍微采用this answer

your_list = ['<', 'p', '>', '<', 'a', 'href', '>', '<', 'a', '>', '<', 'p', '>', '<', 'div', 'class', '>', '<', 'a', 'href', '>', '<', 'a', '>', '<', 'div', '>']

for prev,cur,next in zip([None]+your_list[:-1], your_list, your_list[1:]+[None]):
    if prev == '<' and next == '>':
        print "%s is an empty element" % cur

但是:这当然不是实现目标的最佳/最快/最安全的方法,首先更好地使用BeautifulSoup等适当的解析器。话虽如此,请参阅 a demo on ideone.com