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

첫 번째 문은 해당 URL에 /women-이 포함 된 모든 하이퍼 링크를 선택합니다. 기본적으로 나는 /women-shoes이 아닌 URL에 /women-이있는 모든 링크를 선택하고 싶습니다.xpath 연산자 및 다중 선택

  1. 어떻게하면 루프 자체에 for의 조건을 넣을 수 있습니까? 루프 상태에서 not 연산자의 올바른 사용법을 찾고 있습니다. 또한
  2. URL에 /women-의 모든 링크를 선택한 다음 if 조건에서 URL에 /women-shoes 링크가 없는지 확인하고 싶은 경우 어떻게해야합니까?
+0

그것은 일반적으로 게시하는 것이 좋습니다 처리하려는 데이터의 샘플 및 처리하려는 데이터의 샘플. – MattH

+0

데이터는 다음과 유사합니다. abcpqr Gaurav

+0

샘플을 제공하는 것처럼 세부 사항을 추가하는 경우. 의견을 달기보다는 질문을 편집하십시오. 읽으십시오 : http://stackoverflow.com/faq#howtoask – MattH

답변

0

검색어를 필터링하지 않는 이유는 무엇입니까? 내가 먼저 URL을 볼 수 있습니다로 더 최적화 될 것이라고 생각

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

하지 포함/여성 신발과 다음이 포함되어 있는지 여부를 확인/여성용 - :

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