XPath устанавливает значение по умолчанию, когда div пуст - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть html для разбора:

<parentA>
  <div class="child"> 25 </div>
</parentA>

<parentB>
  <div class="child"></div>
</parentB>

Я использую l xml, а с

//div[@class="child"]/text()

я получаю только [25], но я хотел бы также получить второй div, например [25, null]

Есть ли способ получить пустой div?

Ответы [ 2 ]

1 голос
/ 05 апреля 2020

Попробуйте использовать следующий код:

from lxml import html

html_code = '''<parentA>
                    <div class="child">25</div>
               </parentA>
               <parentB>
                   <div class="child"></div>
               </parentB>'''


dom = html.fromstring(html_code)
div_text = dom.xpath('//div[@class="child"]')
for i in div_text:
    print(i.text)

Выход:

25 None

0 голосов
/ 05 апреля 2020

Попробуйте что-то вроде:

nothing = """your html above"
doc = lxml.html.fromstring(nothing)
[t.text for t in doc.xpath('//div[@class="child"]') ]

Вывод:

[' 25 ', None]
...