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
的链接。
- 我该如何在
for
循环中加上这个条件呢?我想知道在循环条件中正确使用not
操作符的方法。此外, - 如果我想先选出所有网址中有
/women-
的链接,然后在if
条件中检查这个链接的地址里没有/women-shoes
,我该怎么做呢?
2 个回答
1
我觉得这样做会更有效率,因为它会先检查这个网址里有没有/women-shoes,然后再看看有没有/women-:
queryStr = "//a[not(contains(@href,'/women-shoes')) and contains(@href,'/women-') ]
0
为什么不在你的查询中进行过滤呢?
queryStr = "//a[contains(@href,'/women-') and not(contains(@href,'/women-shoes'))]"
for link in hxs.select(queryStr):
self.log("LINKS2 :: %s" % attribute::href())