当div为空时,XPath设置默认值

时间:2020-04-05 18:03:12

标签: python html xpath web-scraping lxml

我有要解析的html:

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

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

我正在使用lxml,并且使用

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

我只得到[25],但我也想获得第二个div,例如[25,null]

有没有办法获取空div?

2 个答案:

答案 0 :(得分:1)

尝试以下代码:

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

答案 1 :(得分:0)

尝试类似的东西:

Console.ReadKey(true)

输出:

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