用于忽略空格和换行符的xpath语法

时间:2014-11-03 19:02:31

标签: xpath web-scraping scrapy python-requests

我试图在this page上使用xpath捕获文本"过去几天"从:

<li class="last">
Last visited
<span>


past few days

</span>
</li>

我已尝试过xpath表达式'//li[@class="last"]/span/text()'的几个变体,作为其中一部分:

from lxml import html
import requests
page = requests.get(url)
tree = html.fromstring(page.text)
visit = tree.xpath('//li[@class="last"]/span/text()')

一切都没有回报。

捕获&#34;过去几天&#34;的正确语法是什么?

由于

1 个答案:

答案 0 :(得分:0)

该页面有一个默认命名空间(xmlns="http://www.w3.org/1999/xhtml")。您要么必须注册该命名空间并在xpath中使用前缀,要么使用local-name()(如果来自不同命名空间的元素可能具有相同的本地名称,则使用namespace-uri()。)

local-name() ...

的示例
//*[local-name()="li"][@class="last"]/*[local-name()="span"]/text()

免责声明:我不使用scrapy或python。这个答案纯粹是xpath,可能不适用于100%。