擅长:python、mysql、java
<p>您位于<code><P></code>元素的最后一个文本子元素之后,因此可以向XPath表达式添加<code>[last()]</code>谓词:</p>
<pre><code>>>> import scrapy
>>> s = scrapy.Selector(text=""" <p class="fc-gray">
... hello
... <span class="">2010-10</span>
... <em class="shuxian">|</em>
... 4.2
... </p>""")
>>> s.xpath('.//p[@class="fc-gray"]/text()[last()]')
[<Selector xpath='.//p[@class="fc-gray"]/text()[last()]' data='\n 4.2 \n '>]
>>> s.xpath('.//p[@class="fc-gray"]/text()[last()]').extract_first()
'\n 4.2 \n '
>>> s.xpath('.//p[@class="fc-gray"]/text()[last()]').extract_first().strip()
'4.2'
>>>> # alternative using XPath's normalize-space() to do the whitespace stripping
>>> s.xpath('normalize-space(.//p[@class="fc-gray"]/text()[last()])').extract_first()
'4.2'
</code></pre>