2012-07-20 5 views
0

다른 웹 사이트의 정보를 내 웹 사이트 (법적으로)에서 가져 오려고합니다. ASP 클래식과 XML DOM에 익숙합니다. 나는 XML DOM을 알고 있지만 그것을 사용하는 데 충분한 지식이 없다. 아래의 코드를 사용하여 다른 웹 사이트의 페이지를 가져와 사용하고 있습니다.다른 웹 사이트에서 정보를 검색하는 방법은 무엇입니까?

Dim xml 
set xml = Server.CreateObject("Microsoft.XMLHTTP") 
xml.Open "GET", "http://www.midwayusa.com/Product/"&sCode , false 
xml.Send 
Dim strRetrive 
strRetrive=xml.responseText 

이제 문제는이 페이지의 제품 상태입니다. 이 페이지의 소스 코드를 보았습니다. 아래 내용을 참조하십시오.

<div id="status_block"> 
      <span id="persistentStatus">Status:</span> 
       <link itemprop="availability" href="http://schema.org/InStock" /> 
      <div id="productStatus"> 
       Available 
       <a class="helpicon mimo" title="Available" href="/Content/htm/Legacy/product_status.htm#200"> 
       </a> 
      </div> 
    ..... 

DIV id = productStatus에서 값을 가져오고 싶습니다. 알다시피 XPath 쿼리 또는 다른 도구를 사용할 수 있습니까? 그렇다면이 정보를 좀 더 알려주시겠습니까?

답변

0

XMLHTTP가 전체 텍스트를 가져옵니다. 그게 효과가있는 것뿐입니다. 일반적으로 요청하는 사이트를 제어 할 수 있다면 서버가 반환하는 것이 최소한인지 확인할 수 있습니다. XMLHTTP를 사용하여 JSON을 요청하거나 나중에 다시 사용할 수있는 XML 데이터를 사용할 때 유용합니다.

제어 권한이없는 사이트에서 근근이 움직이고있는 경우. 그런 다음 반환 된 응답으로 HTML이 붙어 있습니다. div id = "productStatus"전에 모든 텍스트를 제거하기 위해 replace 및 split과 같은 vbscripts 문자열 함수를 사용하고 더 이상 중첩 된 div가 없다면/div> 뒤에 오는 모든 내용을 제거 할 수 있습니다. 닫는 태그. 그 문자열에 div 만 남겨 둡니다.

모든 상황은 다르지만 문자열 기능을 사용하여 데이터를 정리하고 유용하게 정리합니다.

+0

예, 저는 문자열 함수를 사용했는데 잘 작동합니다 ... –

+0

엉덩이에 완전히 고통 스러워요. 사이트 스크래핑의 문제점은 종종 사이트가 변경된다는 것입니다. 다른 접근법은 셀렉터가있는 jquery를 사용하여 긁는 것일 수 있습니다. 나는 당신이 먼저 div로 모든 것을 긁어 낸 다음 div를 대상으로 jquery를 사용하고 아약스 게시를 할 수 있다고 생각합니다. 그다지 귀엽지 않다. – Frank

관련 문제