2016-03-28 68 views
1

我在xpath中使用python,并在xpath语法中迷失方向。我想要做的是检查HTML页面中的表中是否没有标签。所以我使用xpath来做到这一点。然后,如果没有这个标签,请执行相对于该部分的xpath搜索。我似乎正在努力工作,但这种做法恰恰相反,并且无法弄清楚原因。示例代码如下。Xpath - 在xpath结果中搜索

​​

我不认为xpath对于价格是正确的。希望有人能够赐教:)

+0

你介意分享问题的HTML,我们不能对你的文档的确切结构做出假设 – danidee

回答

2

我不认为你在这里正确使用XPath。

只是过滤你想要的节点并抛出你自己的循环和标志。

cars_without_tag_price = '''//td[ 
    @class="cars" and not(span[@class="colorRed"]) 
]/following-sibling::td[@class="price"]/span[@class="amount-value"] 
''' 

for price_node in tree.xpath(cars_without_tag_price): 
    price_str = price_node.text.strip() 
+0

神圣莫里!谢谢 - 我不认为xpath可以做到这一点。还有一个问题 - 在xpath字符串的开始和结尾处,emtpy字符串意味着什么? – area9

+0

当您从树中选取特定节点时,您会惊讶于XPath可以执行的操作。除了基础知识之外,它确实值得学习。 - 此代码示例中没有空字符串。三重引号是Pythons标记多行字符串的方式。 – Tomalak

+0

啊是的。忘了这个。你现在可以告诉我这是一个初学者:) – area9