여기 서 말 하 는'도둑'은 ASP 에서 XML 의 XML HTTP 구성 요소 가 제공 하 는 강력 한 기능 을 활용 하여 원 격 사이트 의 데이터(그림,웹 페이지 및 기타 파일)를 로 컬 로 캡 처 하여 각종 처 리 를 거 쳐 페이지 에 표시 하거나 데이터 베 이 스 를 저장 하 는 과정 을 말한다.이런 도둑놈 프로그램 을 통 해 어떤 역 의 페이지 를 훔 쳐 기둥 으로 바 꾼 뒤 자신의 페이지 로 만 들 거나,어떤 역 의 일부 데이터(글,그림)를 로 컬 데이터베이스 에 저장 해 활용 하 는 등 과거 에는 전혀 실현 불가능 해 보 였 던 임 무 를 수행 할 수 있 습 니 다."도둑'의 장점 은 사 이 트 를 유지 할 필요 가 없다 는 것 이다.도둑 프로그램의 데 이 터 는 다른 사이트 에서 왔 기 때문에 이 사이트 의 업데이트 에 따라 업 데 이 트 될 것 이다.대량의 서버 자원 을 절약 할 수 있 고 일반 도둑 프로그램 은 몇 개의 파일 만 있 으 며 모든 웹 페이지 의 내용 은 다른 사이트 에서 나온다.단점 은 불안정 하 다 는 점 이다.목표 사이트 가 잘못 되면 프로그램 도 잘못 되 고 목표 사이트 가 업그레이드 유 지 를 하면 도둑 프로그램 도 해당 하 는 수정 을 해 야 한다.속 도 는 원 격 호출 이기 때문에 로 컬 서버 에서 데 이 터 를 읽 는 것 보다 속도 가 느 릴 것 입 니 다.어때요? 신기 하 게 들 리 죠?우리 지금부터 도둑 프로그램의 입문 지식 을 배 워 봅 시다!간단 한 것 을 가지 고 연구 해 봅 시다.QQ 사이트 의 일기예보 프로그램 코드 는 다음 과 같 습 니 다.<%On Error Resume NextServer.ScriptTime Out=999999 Function getHTTPPage(Path)t=GetBody(Path)getHTTPPage=Bytes ToBstr(t,"GB 2312")End function"먼저 도둑 프로그램의 초기 화 설정 을 진행 합 니 다.위 코드 의 역할 은 모든 비 치 명 적 인 오 류 를 무시 하고 도둑 프로그램의 실행 시간 초과 설정(이렇게 하면 실행 시간 초과 오류 가 발생 하지 않 습 니 다)입 니 다.기본 UTF-8 인 코딩 을 GB 2312 인 코딩 으로 변환 합 니 다.그렇지 않 으 면 XML HTTP 구성 요소 로 중국어 문자 가 있 는 웹 페이지 를 직접 호출 하면 오류 가 발생 합 니 다.Function GetBody(url)on error resume nextSet Retrieval=CreateObject("Microsoft.XML HTTP")With Retrieval.Open"Get",url,False,",",",".End GetBody=.ResponseBodyEnd With Set Retrieval=Nothing End Function'다음 XML HTTP 구성 요소 로 대상 을 만 들 고 초기 화 설정 을 합 니 다.Function BytesToBstr(body,Cset)dim objstreamset objstream = Server.CreateObject("adodb.stream")objstream.Type = 1objstream.Mode =3objstream.Openobjstream.Write bodyobjstream.Position = 0objstream.Type = 2objstream.Charset = CsetBytesToBstr = objstream.ReadText objstream.Closeset objstream = nothingEnd FunctionFunction Newstring(wstr,strng)Newstring=Instr(lcase(wtr),lcase(strng)if Newstring<=0 then Newstring=Len(wtr)End Function'처리 캡 처 된 데 이 터 는 adodb.stream 구성 요 소 를 호출 하여 초기 화 설정 해 야 합 니 다.%>'다음은 페이지 디 스 플레이 부분<%Dim wstr,str,url,start,over,city'에서 사용 할 변수 city=Request.QueryString("id")'프로그램 이 전송 하 는 ID 변수(즉 사용자 가 선택 한 도시)를 idurl 에 부여 합 니 다="http://appnews.qq.com/cgi-bin/news_qq_search?city="&city&""캡 처 할 페이지 주 소 를 설정 합 니 다.물론 변수 wstr=getHTTPPage(url)를 사용 하지 않 고 특정한 주 소 를 직접 지정 할 수도 있 습 니 다.이 변 수 는 상황 에 따라 설정 해 야 합 니 다.구체 적 인 내용 은 캡 처 할 페이지 의 소스 코드 를 통 해 확인 할 수 있 습 니 다.이 프로그램 에서 전체 페이지 를 캡 처 해 야 하기 때문에 페이지 전체 캡 처 로 설정 합 니 다.설정 한 내용 은 페이지 내용 이 유일 해 야 하 며 중복 할 수 없습니다.over=Newstring(wtr,'')'과 start 가 대응 하 는 것 은 처리 해 야 할 데이터 의 끝 부분 입 니 다.마찬가지 로 설정 한 내용 은 페이지 에서 유일 해 야 합 니 다.body=mid(wtr,start,over-start)'디 스 플레이 페이지 의 범 위 를 설정 합 니 다'다음은 건곤 이동++를 사용 할 때 입 니 다.replace 를 통 해 데이터 에서 지정 한 문 자 를 일부 문자 로 대체 할 수 있 습 니 다.body=replace(body,"skin 1","일기예보-스 크 네트워크")body=replace(body,"http://appnews.qq.com/cgi-bin/news_qq_search?city","tianqi.asp?id")"이 프로그램 에서 교체 작업 이 완료 되 었 습 니 다.다른 필요 한 것 이 있 으 면 유사 한 교체 작업 을 계속 할 수 있 습 니 다.response.write body%>수정 할 내용 을 바 꾸 면 수 정 된 내용 을 페이지 에 표시 할 수 있 습 니 다.이 프로그램 종료 방법 및 결과:상기 코드 를 설명 부분 을 제거 한 후 tianqi.asp 로 저장 하여 ASP 와 XML 을 지원 하 는 공간 에 업로드 하여 브 라 우 저 에서 실행 하면 됩 니 다.너 는 이 프로그램 을 바탕 으로 진일보 한 인터페이스 미화 나 프로그램 최 적 화 를 진행 할 수 있다.이상 은 XML HTTP 구성 요소 에 대한 초급 응용 일 뿐 실제 적 으로 실현 할 수 있 는 기능 이 많 습 니 다.예 를 들 어 원 격 그림 을 로 컬 서버 에 저장 하고 adodb.stream 구성 요소 와 결합 하여 가 져 온 데 이 터 를 데이터베이스 에 저장 할 수 있 습 니 다.도둑 의 역할 과 사용 범위 가 매우 넓다.하지만 법 을 어 기 는 일 은 가 져 오 면 안 돼!이런'도둑'프로그램 이 ASP 의 특허 일 뿐 이 냐 는 질문 도 있 을 것 이다.뿐만 아니 라 PHP 는 fopen 함수 와 마찬가지 로 같은 효 과 를 실현 할 수 있 습 니 다.PHP 자체 의 여러 가지 특징 으로 인해 쓰 인 도둑 프로그램 은 ASP 에 비해 부피 와 집행 효율 에 있어 현저 한 장점 이 있 지만 편폭 에 국한 되 어 일일이 설명 하지 않 습 니 다.