PyQuery получить текстовый узел

Я использую PyQuery для обработки этого HTML:

<div class="container">
    <strong>Personality: Strengths</strong>
    <br />
    Text
    <br />
    <br />
    <strong>Personality: Weaknesses</strong>
    <br />
    Text
    <br />
    <br />
</div>

Теперь, когда у меня есть переменная e, указывающая на .container, я перебираю ее дочерние элементы:

for c in e.iterchildren():
    print c.tag

но таким образом я не могу получить текстовые узлы (две строки Text)

Как я могу зациклить дочерние элементы элемента, включая текстовые узлы?


person wong2    schedule 03.03.2015    source источник


Ответы (1)


ты можешь делать это нравится

        for c in e.children():
            p = PyQuery(c)
            print p.__str__()  
            #here re.sub remove html tag

Этот код может получить необработанный текст каждого узла. Если вы хотите отличить текстовый тег от других:

            raw = p.__str__().strip()
            a = raw.rfind(">")
            if (a+1!=len(raw)) : 
                print 'is text'
person eminia    schedule 05.03.2019