如何使用python?</div>在html中找到<div>标签的深度

时间:2015-02-17 19:31:25

标签: python html regex

我应该如何找到这个街区的深度 -

<div>
    <div>
        <div>
        </div>
    </div>
</div>

在这种情况下,它应该是3。 任何线索/代码都会有所帮助。

1 个答案:

答案 0 :(得分:3)

有很多方法可以做到这一点。我会not recommend使用正则表达式解析XML。

一种方法是使用Python标准的HTMLParser

from HTMLParser import HTMLParser

class MyHTMLParser(HTMLParser):
    def __init__(self):
        HTMLParser.__init__(self)
        self.depth = 1

    def handle_starttag(self, tag, attrs):
        print 'Encountered %s at depth %d.' % (tag, self.depth)
        self.depth += 1

    def handle_endtag(self, tag):
        self.depth -= 1

if __name__ == '__main__':
    html = '''
    <div>
        <div>
            <div>
            </div>
        </div>
    </div>
    '''

    MyHTMLParser().feed(html)

运行此脚本会产生:

Encountered div at depth 1.
Encountered div at depth 2.
Encountered div at depth 3.