2013-07-24 6 views
0

아래의 a) 또는 b) 중 하나를 수행하려고합니다. 나는 그것을 이해할 수 있다면 나는)를 선호 할 것이다. 끝 부분의 html을 참조하십시오.html에서 특정 요소/값 추출

a) 다음 항목의 값을 추출하십시오. - ""항목은 정적이지만 관련 값이 변경됩니다. 나는 단지 가치를 추출하고 싶다.

"locality" = Paris 
"region" = Paris 
"country-name" = France 
"latitude" = 48.85534 
"longitude" = 2.35048 

b)는 단순히 내가 다른 사람의 코드를 재사용하는 것을 시도하고 전체 요소 <div class="vcard">...<div>

를 추출하고, 내가하고 싶은 일을합니다. 하지만 코드 주위에 머리를 감싸는 데 문제가 있습니다. 일부 값을 추출 할 수 있습니다. 그러나 그것은 지저분합니다.

VBA를

Sheet1.WebBrowser1.Navigate (Sheet1.Range("C1")) 

Do 
DoEvents 
Loop Until Sheet1.WebBrowser1.ReadyState = READYSTATE_COMPLETE 

the_html_code = Sheet1.WebBrowser1.Document.Body.InnerHTML 

    the_output_row = 2 
    start_of_item = InStr(the_html_code, "locality") 
    the_value = Mid(the_html_code, start_of_item + 39, Len(the_html_code)) 
    the_html_code = Mid(the_html_code, start_of_item + 8, Len(the_html_code)) 
    the_value = Mid(the_value, 1, InStr(the_value, Chr(62)) - 1) 
     Sheet1.Range("L" & the_output_row) = the_value 

데이비드 Zemens, 당신은 MSXML의 DOM 파서를 사용할 수있는 제안과 HTML

<script> 
     if (typeof (aadSponsoredLinksObj) != 'undefined' && aadSponsoredLinksObj.type == 'google' && aadSponsoredLinksObj.show_links == true) { 
      document.write('<scr' + 'ipt src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></scr' + 'ipt>'); 
     } else if (typeof (aadSponsoredLinksObj) == 'undefined') { 
      jQuery('#ad-links').remove(); 
     } 
    </script> 
<div id="tracking-pixels"></div> 

</div> 
<!-- /#wrap --> 

    <div class="vcard"> 
     <span class="adr"> 
      <span class="locality"> 
       <span class="value-title" title="Paris" ></span> 
      </span> 
      <abbr class="region" title="Paris"> 
       <span class="value-title" title="75" ></span> 
      </abbr> 
      <abbr class="country-name" title="France"> 
       <span class="value-title" title="FR" ></span> 
      </abbr> 
     </span> 
     <span class="geo"> 
      <span class="latitude"> 
       <span class="value-title" title="48.85534" ></span> 
      </span> 
      <span class="longitude"> 
       <span class="value-title" title="2.35048"></span> 
      </span> 
     </span> 
    </div> 

    <script type="text/javascript"> 
     var _qoptions = { qacct: 'p-4b4gl_1fWISuU' }; 
     if (typeof (apgPageInfoObj) != 'undefined' && apgPageInfoObj.crumb_trail) { 
      _qoptions.labels = apgPageInfoObj.crumb_trail.join('.'); 
+2

적절한 'DOM'파서를 사용하지 않는 이유는 무엇입니까? HTML을 구문 분석하기 위해 문자열 함수를 사용하는 것보다 약 1000 % 더 효율적입니다. –

답변

0

을 : 나는 코드가 훨씬 더 잘 할 수 있다고 생각합니다. VBA References (VBA 참조) 대화 상자에서 Microsoft XML에 대한 참조를 추가 할 수 있습니다. 이 라이브러리 here에 대한 온라인 참조가 있습니다.

관련 문제