0%

XPath如何取出被标签包含的文字内容?

在获取网页数据的时候,经常会使用xpath进行数据的提取,对于如下的代码:

案例1:

1
<div id="test1">大家好!</div>

使用xpath提取是非常方便的。假设网页的源代码在selector中:

1
data = selector.xpath('//div[@id="test1"]/text()').extract()[0]

可以把“大家好!”提取到data变量中去。


案例2:

如果我有一百段如下类似的html代码,内部的标签还不固定,又如何使用xpath表达式,以最快最方便的方式提取出来?

1
<div id="test3">我左青龙,<span id="tiger">右白虎,<ul>上朱雀,<li>下玄武。</li></ul>老牛在当中,</span>龙头在胸口。<div>

解决方案:

1
2
data = selector.xpath('//div[@id="test3"]')
info = data.xpath('string(.)').extract()[0]