xpath not运算符和多个select

时间:2011-09-13 06:52:56

标签: python xpath

for link in hxs.select("//a[contains(@href,'/women-')]"):
    if ('.a[notcontains(@href,"/women-shoes")]'):
        self.log("LINKS2 :: %s" % attribute::href())

第一个语句是在其网址中选择包含/women-的所有超链接。基本上我想在其网址中选择/women-但不是/women-shoes的所有链接。

  1. 如何将该条件放入for循环本身。我正在寻找循环条件中not运算符的正确用法。此外,
  2. 如果我想做一些事情,比如在他们的网址中选择/women-的所有链接,然后在if条件中我想检查网址中的链接是否没有/women-shoes,该怎么做我这样做?

2 个答案:

答案 0 :(得分:1)

我认为它会更加优化,因为它会看到第一个url不包含/ women-shoes然后检查它是否包含/ women-:

queryStr = "//a[not(contains(@href,'/women-shoes')) and contains(@href,'/women-') ]

答案 1 :(得分:0)

为什么不在查询中进行过滤?

queryStr = "//a[contains(@href,'/women-') and not(contains(@href,'/women-shoes'))]"
for link in hxs.select(queryStr):
    self.log("LINKS2 :: %s" % attribute::href())