2014-09-08 3 views
0

나는이이 노드 내에서 특정 텍스트에 대한 확인 :XPATH 구문 분석하는 노드로

<h3 class="atag"> 
    <a href="http://www.example.com"> 
     <span class="btag">text to be ignored</span> 
     </a> 
      <span class="ctag">text to be checked</span> 
</h3> 

을 내가 "http://www.example.com"를 추출하는 거 필요 해요하지만 일부 문자를 무시하는; 또한 ctag에 검사 할 텍스트가 있는지 확인해야합니다.

나는 이걸 생각해 냈지만 일을하지 않는 것 같습니다.

response.xpath("//h3/a/@*[not(self::span)]").extract() 

이것에 대한 의견이 있으십니까?

답변

2

'a'태그에서 href를 선택하기 만하면 @href를 사용하십시오.

'//h3[contains(span[@class="ctag"]/text(), "text to be checked")]/a/@href' 

이 내부 주어진 H3 블록 "검사 할 텍스트"와 범위가 있는지 확인합니다 : 또한 ctag 일부 텍스트가 포함되어 있는지 여부, 당신이 다음과 같은 코드를 사용할 수 있다고 생각 확인하십시오. 텍스트가 있으면 'www.example.com'이 검색되고, 그렇지 않으면 빈 결과가 표시됩니다.

+0

감사합니다. –

0

이 XPath 같은 것을 의미합니까? : 위의 XPath

//h3/a[following-sibling::span[@class='ctag' and .='text to be checked']/@href 

"text to be checked"의 값을 포함 <span class="ctag"> 하였다 <a> 태그를 얻을하고 Return href 특성을 이전에서 언급 <a> 태그.