不适用于xpath for scrapy中包含函数的条件

时间:2014-11-17 10:46:44

标签: xpath scrapy

我在scrapy中使用xpath来解析数据,我有一些HTML代码,如下所示。

<tr>
 <td>RAM</td><td>4 GB</td>
</tr>
<tr>
 <td>RAM Frequency</td><td>1600 MHz</td>
</tr>

我想抓住RAM大小 目前我正在使用语法

for tr in response.xpath(".//tr[contains(.,'RAM')]"):
    result=tr.xpath(".//td[contains(.//text(),'RAM')]/following-sibling::td[1]/text()").extract()

但最后我得到1600 MHz而不是4 GB。所以,我的问题是,是否存在类似

的语法
for tr in response.xpath(".//tr[contains(.,'RAM') & not(contains(.,'RAM Frequency'))]")

只解析RAM而不是RAM频率。

1 个答案:

答案 0 :(得分:2)

是:.//tr[contains(.,'RAM') and not(contains(.,'RAM Frequency'))]

了解更多:

XPath Reference - Boolean Functions