2014-12-19 2 views
1

엑셀 VBA를 가진 HTML 페이지에 "A HREF"에서 innerText와긁어 나는 다음과 같은 HTML 코드를 웹 사이트에서 데이터를 긁어하려고

<a href='https://somesite.com/nation/id=344'>Vee Veetis <img src='https://somesite.com/img/flags/albania.jpg' class='tinyflag'></a><br />FireBird </td> 

나는 다음과 같은 VBA

With IE.document 

    Set elems = .getElementsByTagName("a") 
    For Each e In elems 

     If e Like "https://somesite.com/record/id=*" Then 
      Sheets("Members").Range("A" & i).Value = e 
      Sheets("Members").Range("B" & i).Value = e.innerText ' doesnt work, returns "view" - desire 'Vee Veetis' 
      Sheets("Members").Range("C" & i).Value = e.outerText ' doesnt work, returns "view" - desire 'Firebird' 
      i = i + 1 
      Exit For ' remove this to scrape remaning items once working 
     End If 

    Next e 

    End With 

문제없이 실제 링크를 다 쓸 수 있지만 링크 바로 뒤에있는 "Vee Veetis"링크와 해당 텍스트 'Firebird'가 포함 된 텍스트를 참조 할 수있는 방법을 찾는데 어려움을 겪고 있습니다. 아무도 이것들이 어떻게 관련되어 있고 효과적으로 긁힐 수 있는지에 대한 지침을 가지고 있습니까?

답변

1

"Vee Veetis"가 포함 된 < td> 태그의 데이터를 추출하려면 다음 코드를 사용할 수 있습니다. "Vee Veetis"와 "Firebird"는 동일한 < td> 태그에 있으므로 두 값이 모두 A1에 반환되고 줄 바꿈으로 구분됩니다. 그러나 문자열에 결과를 저장 한 다음 줄 바꿈으로 문자열을 분할하여 "Vee Veetis"또는 "Firebird"를 반환 할 수 있습니다.

Set elems = IE.document.getElementsByTagName("td") 
For Each e In elems 

    If e.innerText Like "*Vee Veetis*" Then 
    Range("A1").Value = e.innerText 
    End If 

Next e 

희망이 있습니다.

관련 문제