2016-07-13 13 views
0

그래서 다른 페이지의 다른 xpath에 표시된 데이터를 가져 오려고합니다. 당신이 위키 낱말 사전 ... https://en.wiktionary.org/wiki/foo에서 IPA의 pronunction의 XPath를 볼 경우다른 웹 페이지에서 다른 xpath가있는 데이터를 가져 오는 방법은 무엇입니까?

당신은 XPath는이

//*[@id="mw-content-text"]/ul[1]/li[1]/span[4] 

것을 볼 수 있지만 다른 단어에 도착하면, https://en.wiktionary.org/wiki/bar처럼 다음 XPath는

일 것입니다
//*[@id="mw-content-text"]/ul[1]/li[2]/span[5] 

이러한 문제를 해결할 방법이 없다고 생각합니다. 누락 된 부분이 있습니까?

+0

xpath는 두 페이지에서 동일합니다. 문제는 다른 언어를 선택하는 것입니다. 첫 페이지에는 영국 영어 (영국)가 있고 두 번째 페이지에는 미국 영어 (미국)가 있습니다. – derloopkat

+1

당신은 스스로에게 물어볼 필요가 있습니다. "나는 인간으로서 어떤 페이지에서 내가 관심있는 비트의 내용을 찾는 방법을 다른 사람에게 어떻게 설명하겠습니까?" 그런 다음이를 XPath로 변환하십시오. –

답변

2

대답은 간단합니다. 도구가 XPath를 작성하지 못하도록하십시오. 모든 도구가 잘못되었습니다.

문서의 HTML 소스를보고 적절한 XPath를 직접 작성하십시오.

var result = document.evaluate("//*[@class = 'IPA']", document), 
    elem; 

while (elem = result.iterateNext()) { 
    console.log(elem); 
} 

위의 그림은 가장 간단한 변형을 보여줍니다. https://en.wiktionary.org/wiki/foo에서 <span class="IPA">의 두 항목을 선택하고 https://en.wiktionary.org/wiki/bar에서 꽤 많은 항목을 두 개 선택합니다.

보다 구체적인 표현식을 사용하여 결과의 ​​범위를 좁 힙니다.

관련 문제