<div> <ul class="show"> <li>275萬購昌平鄰鐵三居 總價20萬買一居</li> <li>00萬內購五環三居 140萬安家東三環</li> <li>北京首現零首付樓盤 53萬購東5環50平</li> <li>京樓盤直降5000 中信府 公園樓王現房</li> </ul> </div>
我想要把全部li標籤中的文本提取出來,而且放到一個字符串中.
在網上查了下發現使用xpath的string()函數能夠實現(string()和text()的區別請自行google)
先看下常見的方法:html
>>> from lxml import etree ... >>> result = html.xpath("//div/ul[@class='show']")[0] >>> result.xpath('string(.)') ' 275萬購昌平鄰鐵三居 總價20萬買一居 00萬內購五 環三居 140萬安家東三環 北京首現零首付樓盤 53萬購東5環50平 京樓盤直降5000 中信府 公園樓王現房 '
這是我查到的多數人使用的方法,還有人使用了concat()函數,更麻煩就不提了.
可是上面的匹配明顯感受能夠寫到一條xpath裏面的,爲何非要分開寫!忍不住吐槽一下
xpath string()函數的調用寫法:python
>>> html.xpath("string(//div/ul[@class='show'])") ' 275萬購昌平鄰鐵三居 總價20萬買一居 00萬內購五 環三居 140萬安家東三環 北京首現零首付樓盤 53萬購東5環50平 京樓盤直降5000 中信府 公園樓王現房 '
再吐槽下上面那種寫法.在xpath語法裏面,點(.)表示當前節點,當前節點不就是html.xpath("//div/ul[@class='show']")[0]
取到的節點元素嗎!!!函數