2017-11-27 1 views
0

웹 페이지의 데이터를 가져 오는 데 문제가 없지만 두 가지 문제가 발생했습니다.웹 데이터 스크래핑 html 테이블 Excel VBA

웹 페이지에서 페이지 데이터를 한 페이지 만 표시하고 하단에는 2, 3 및 NEXT 페이지를 클릭 할 수 있습니다. Ctrl + U을 사용하면 html 코드를 볼 수 있습니다. 모든 정보가로드되고 tr 행으로 잘 정리되어 있습니다.

나는 무엇으로 내가 크롬에서 Ctrl 키 + U를 사용하여 볼 수 ie.document 모든 요소를 ​​저장할 수 있습니다 가정합니다. 그리고 getelementByTagName("tr")을 사용하여 tr innertext를 검색하려고하면 vba가 테이블의 다른 페이지에 있어야하는 tr 요소를 건너 뛰었습니다. 잘 설명하지 못하면 실례합니다. 기밀 정보가 포함되어있을 수 있으므로 여기에 링크 및 HTML 코드를 붙여 넣을 수 없습니다. 누군가가 비슷한 문제에 부딪 혔을 지 궁금합니다.

ieDoc = ieApp.Document 

For Each HTMLRow In ieDoc.getElementsByTagName("tr") 

Debug.print HTMLRow.innertext 
+0

당신이 문서에보고해야 작동 방법에 대한보다 큰 예제를 제공 [링크]를 볼 수있는 과거에 비슷한 질문을했다. co.kr/help/formatting) –

답변

0

아직 댓글을 달 수 없기 때문에 다음 내용이 도움이되기를 바랍니다.

요소의 전체 세트를 얻으려면, 당신과 같이 변수를 정의 할 수 있습니다에 있는지 확인하십시오 위를 사용하려면

Set variableName = ie.document.getElementsByTagName("tr") 

:

Dim variableName as IHTMLElementCollection 

컬렉션을 반환하려면 도구> 참조에서 참조 Microsoft 인터넷 컨트롤을 추가하십시오. // 유래를 :

나는 (HTTPS를 당신이 여기에 질문을 게시하기 전에 Excel VBA getElementsByTagName

+0

고마워, 내가 이것을 시도하고 컬렉션을 통해 반복, 그리고 그것은 2 페이지 또는 웹 페이지의 테이블 너머에 내가 필요한 tr 요소를 반환하지 않았다. 그러나 모든 요소는 페이지 소스 코드에서 볼 수 있듯이로드됩니다. – John

+0

페이지 2에는 peg 해제와 다른 URL이 있습니까? 그렇지 않으면, "다음 페이지"버튼이 있으면 누르십시오. 초기 입력에 따라 페이지 수가 변경된 경우 LocationURL 메서드를 사용하여 올바른 페이지에 있는지 확인할 수 있습니다. 답을 찾으면 게시 할 수 있습니까? 나는이 도구를 많이 사용하고 다른 예제를 사용하면 많은 도움이됩니다. –

+0

페이지에 별개의 URL이 없습니다. NEXT를 누르면 새 URL로 직접 연결되지 않습니다. 내 생각 엔 ie.document는 페이지가 전체 소스 코드에 포함되어있는 것처럼 모든 tr 행이 아니라 화면이 표시되는 것처럼 tr 행만 기록합니다. – John