2016-07-11 7 views
0

웹 사이트를 열고 구문 분석 한 후 매크로에서 데이터를 가져 오는 매크로를 Excel에 작성했습니다. 내가 가지고있는 문제는 일단 현재 페이지의 모든 데이터로 끝났 으면 다음 페이지로 가고 싶다. 이렇게하려면 "result-stats"노드의 마지막 자식을 가져오고 싶습니다. 나는 lastChild 기능을 발견, 그래서 다음 코드를 내놓았다 :HTMLElement의 마지막 자식을 얻는 방법

<p id="result-stats"> 
    949 results 
    <span class="optional"> (1.06 seconds)</span> 
    <a href="/?query=omni%3DOklahoma%2BEnergy%2BAcquisitions" title="Modify your search">Modify search</a> 
    <a href="#" id="toggle-show">Show more columns</a> 
    <a href="/results/omni=Oklahoma+Energy+Acquisitions/page-2">Next</a> 
</p> 

내가 이것을 실행하려고하면, 나는 오류가 발생 : 여기

'Checks to see if there is a next page 
If html.getElementById("result-stats").LastChild.innerText = "Next" Then 
    html.getElementById("result-stats").LastChild.Click 
End If 

그리고 그것은 액세스하는 HTML입니다 . 많은 검색 후에 나는 그 이유를 발견했다고 생각한다. 내가 읽은 것에 따르면 getElementById는 노드가 아닌 요소를 반환합니다. lastChild는 노드에서만 작동하므로 여기서 함수가 작동하지 않습니다.

내 질문은 여기 있습니다. 요소 인의 마지막 자식을 잡아내는 깨끗하고 간단한 방법이 있습니까? 아니면 노드의 요소에 타입 변환하는 방법이 있습니까? 나는 명백한 무엇인가 놓치고있는 것처럼 느낀다. 그러나 나는 내가 했어야하는 것보다 오랫동안이 길에 있었다. 누구든지 제공 할 수있는 도움이 있으면 대단히 감사하겠습니다.

감사합니다.

+0

은 테이블에있는 데이터인가? 그렇다면 마지막 행을 확인하거나 행을 반복 한 다음 링크를 클릭하면? \ –

+0

데이터는 HTML 소스 코드를 파싱하는 웹 사이트에서 가져옵니다. – Mike

+0

이 맞고 소스가 테이블의 항목을 보유하고 있습니다 ... 그래서 ... ''또는' '또는' '태그가 있습니까? –

답변

0

다음과 같은 방법을 사용합니다. 내 의견이 명확하지 않으면 멀리 물어보십시오. 나는 페이지를 탐색하고 브라우저를 기다리는 방법에 대한 지식을 가지고 있다고 가정했다.

Sub ClickLink() 

Dim IE As Object 
Set IE = CreateObject("InternetExplorer.Application") 

'load up page and all that stuff 

'process data ... 

'click link 
Dim doc As Object 
Set doc = IE.document 

Dim aLinks As Object, sLink As Object 

For Each sLink In doc.getElementsByTagName("a") 

    If sLink.innerText = "Next" Then 'may need to play with this, if `innerttext' doesn't work 
     sLink.Click 
     Exit For 
    End If 

Next 

End Sub 
+1

이것은 훌륭하게 작동했습니다. 하나의 작은 변화를 만들었고 sLink를 Object가 아닌 IHTMLElement로 만들었습니다. 내 코더는 일반화 된 객체를 갖는 것을 싫어한다. 당신의 도움을 주셔서 감사합니다. – Mike

+0

@mike - 일반화 된 객체에 동의하지만 올바른 객체 유형을 찾기에는 너무 게으른 편이었습니다! –

관련 문제