lxml cssselect Parsing - PullRequest
       35

lxml cssselect Parsing

2 голосов
/ 06 февраля 2011

У меня есть документ со следующими данными:

<div class="ds-list">
    <b>1. </b> 
    A domesticated carnivorous mammal 
    <i>(Canis familiaris)</i> 
    related to the foxes and wolves and raised in a wide variety of breeds.
</div>

И я хочу получить все в пределах класса ds-list (без тегов <b> и <i>).В настоящее время мой код doc.cssselect('div.ds-list'), но все, что он получает, это перевод строки перед <b>.Как я могу заставить это делать то, что я хочу?

Ответы [ 2 ]

8 голосов
/ 06 февраля 2011

Возможно, вы ищете метод text_content?

import lxml.html as lh
content='''\
<div class="ds-list">
    <b>1. </b> 
    A domesticated carnivorous mammal 
    <i>(Canis familiaris)</i> 
    related to the foxes and wolves and raised in a wide variety of breeds.
</div>'''
doc=lh.fromstring(content)
for div in doc.cssselect('div.ds-list'):
    print(div.text_content())

выходы

1.  
A domesticated carnivorous mammal 
(Canis familiaris) 
related to the foxes and wolves and raised in a wide variety of breeds.
1 голос
/ 06 февраля 2011
doc.cssselect("div.ds-list").text_content()
...