xpath не оператор и множественный выбор - PullRequest
0 голосов
/ 13 сентября 2011
for link in hxs.select("//a[contains(@href,'/women-')]"):
    if ('.a[notcontains(@href,"/women-shoes")]'):
        self.log("LINKS2 :: %s" % attribute::href())

Первый оператор выбирает все гиперссылки, которые содержат /women- в своем URL. В основном я хочу выбрать все ссылки, которые имеют /women- в своем URL, но не /women-shoes.

  1. Как я могу поместить это условие в сам цикл for. Я ищу правильное использование оператора not в состоянии цикла. Кроме того,
  2. Если я хочу сделать что-то вроде выбора всех ссылок с /women- в их URL, а затем в условии if, я хочу проверить, не содержит ли ссылка /women-shoes в URL, как мне это сделать?

Ответы [ 2 ]

1 голос
/ 13 сентября 2011

Я думаю, что он будет более оптимизирован, так как сначала увидит, что URL не содержит / women-shoes, а затем проверит, содержит ли он / women-:

queryStr = "//a[not(contains(@href,'/women-shoes')) and contains(@href,'/women-') ]
0 голосов
/ 13 сентября 2011

Почему бы не выполнить фильтрацию по вашему запросу?

queryStr = "//a[contains(@href,'/women-') and not(contains(@href,'/women-shoes'))]"
for link in hxs.select(queryStr):
    self.log("LINKS2 :: %s" % attribute::href())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...