원리 수집 프로그램 은 실제로 XML 의 XML HTTP 구성 요 소 를 통 해 다른 사이트 의 웹 페이지 를 호출 합 니 다.예 를 들 어 뉴스 수집 프로그램 은 sina 의 뉴스 홈 페이지 를 호출 하고 그 중의 html 를 교체 하 는 동시에 광고 도 여과 했다.채집 프로그램의 장점 은 사 이 트 를 유지 할 필요 가 없다 는 것 이다.채집 프로그램의 데 이 터 는 다른 사이트 에서 왔 기 때문에 이 사이트 의 업데이트 에 따라 업 데 이 트 될 것 이다.서버 자원 을 절약 할 수 있 고 보통 채집 프로그램 은 몇 개의 파일 만 있 으 며 모든 웹 페이지 의 내용 은 다른 사이트 에서 나온다.단점 은 불안정 하 다.목표 사이트 가 잘못 되면 프로그램 도 오류 가 발생 할 수 있다.또한 목표 사이트 가 업그레이드 유지 보 수 를 하면 채집 프로그램 도 해당 하 는 수정 을 해 야 한다.속 도 는 원 격 호출 이기 때문에 로 컬 서버 에서 데 이 터 를 읽 는 것 보다 속도 가 느 릴 것 입 니 다.1.사례 아래 에서 XML HTTP 가 ASP 에서 의 응용 에 대해 간단 한 설명 을 하 겠 습 니 다
<% ' '1、 url , getHTTPPage html function getHTTPPage(url) dim Http set Http=server.createobject("MSXML2.XMLHTTP") Http.open "GET",url,false Http.send() if Http.readystate<>4 then exit function end if getHTTPPage=bytesToBstr(Http.responseBody,"GB2312") set http=nothing if err.number<>0 then err.Clear end function '2、 , xmlhttp , adodb.stream Function BytesToBstr(body) dim objstream set objstream = Server.CreateObject("adodb.stream") objstream.Type = 1 objstream.Mode =3 objstream.Open objstream.Write body objstream.Position = 0 objstream.Type = 2 objstream.Charset = "GB2312" ' UTF-8 GB2312 , XMLHTTP BytesToBstr = objstream.ReadText objstream.Close set objstream = nothing End Function ' https://www.jb51.net html Dim Url,Html Url="https://www.jb51.net"; Html = getHTTPPage(Url) Response.write Html %>
2.자주 사용 하 는 함수(1)InStr 함수 설명 은 특정한 문자(string 2)가 다른 문자열(string 1)에서 처음으로 나타 난 위 치 를 되 돌려 줍 니 다.문법 InStr(string 1,string 2)예:Dim SearchString,SearchChar SearchString="https://www.jb51.net'그 중에서 검색 할 문자열 입 니 다.SearchChar="jb 51"검색"jb 51".MyBK=Instr(SearchString,SearchChar)'8'을 되 돌려 줍 니 다.찾 지 못 하면'0'을 되 돌려 줍 니 다.예 를 들 어 SearchChar='BK'MyBK=Instr(SearchString,SearchChar)'는 0(2)Mid 함수 설명 을 문자열 에서 지정 한 수의 문 자 를 되 돌려 줍 니 다.문법 Mid(string,start,over)예 를 들 어 Dim MyBK MyBK=Mid("우리 BK(www.google)디자인",7,12)'문자열 캡 처'우리 BK(www.google)디자인'7 번 째 문자 이후 12 글자'이때 MyBK 의 값 은'www.google'(3)Replace 함수 Dim SearchString 으로 바 뀌 었 다.SearchChar SearchString="우리 의 BK 디자인 은 사이트 건설 자원 사이트 입 니 다"'검색 할 문자열 입 니 다.SearchString=Replace(SearchString,"BK 디자인","Www.google")'이때 SearchString 의 값 은"우리 Www.google 은 하나의 사이트 건설 자원 사이트"로 바 뀌 었 다.지정 한 지역 의 HTML 코드 를 캡 처 합 니 다.예 를 들 어 저 는 다음 HTML 코드 의'td'와'(www.google)구 글 검색엔진
BK(www.google)구 글 검색엔진 은 자원 이 많은 사이트 입 니 다...
<%...Dim StrBK,start,startover,RsBK StrBK=getHTTPPage(웹 페이지 의 주소)start=Instr(StrBK,'td id=','Content','>')문자열 의 시작 부분 을 가 져 오 는 역할 을 합 니 다.여기 서 누군가가 물 어 봐 야 한다.원래 의 코드 는를 호출 했 습 니까?정 답:asp 에서(정확히 말 하면 VBscript 에 서 는 두 개의 따옴표 로 두 개의 따옴표 로 두 개의 따옴표 를 표시 합 니 다.두 개의 따옴표 가 프로그램 에 민감 한 문자 이기 때 문 입 니 다.)over=Instr(StrBK,"...")'문자열 끝 에 있 는 위 치 를 가 져 오 는 역할 을 합 니 다.'여기 또 누가 물 어 볼 것 이다.답:알림:위 줄 에 도가 있 습 니 다.여기 서로 위 줄 의를 문자열 의 끝 부분 으로 잘못 찾 을 수 있 습 니 다.RsBK=mid(StrBK,start,over-start)'는 StrBK 의 첫 번 째 start 문자 에서 두 번 째 over 문자 사이 의 문자열 을 추출 하 는 역할 을 합 니 다.mid 함수 앞 절 에 나 도 말 했 습 니 다.over-start 는 시작 위치 와 끝 위치 사이 의 거 리 를 계산 하기 위해 서 입 니 다.즉,문자 수 입 니 다.response.write(RsBK)'마지막 출력 프로그램 에서 가 져 온 내용%>너무 일찍 기뻐 하지 마 세 요.실행 할 때 페이지 의 html 코드 가 잘못 되 었 습 니 다.왜 일 까요?당신 이 얻 은 html 코드 는BK(www.google)구 글 검색엔진 은 자원 이 많은 사이트 이기 때 문 입 니 다.보 셨 죠?부족 한 HTML 코드 가 있 네요!어 떡 하지?start=Instr(StrBK,"td id="Content"")이 문 구 는"td id="Content">"StrBK 에 있 는 위치 수 를 가 져 옵 니 다.이제 프로그램 문 뒤에 17 을 추가 할 수 있 습 니 다.그러면 프로그램 은 위 치 를")+17 over=Instr(StrBK,"...")여기 서도 7(-7)을 빼 고 3 개의 점 을 RsBK=mid(StrBK,start,over-start)response.write(RsBK)%>를 빼 면 됩 니 다.우 리 는 우리 가 원 하 는 물건 을 훔 쳐 서 우리 자신의 페이지 에 표시 할 수 있 습 니 다.ㅎ ㅎ~4.가 져 온 문 자 를 삭제 하거나 수정 하여 RsBK 의'BK(www.google)'를'BK'로 바 꾸 거나:RsBK=replace(RsBK,'BK(www.google)','BK')를 직접 삭제 하거나'(www.google)'를 삭제 합 니 다.RsBK=replace(RsBK,'(www.google)',')자,이제 RsBK 는'BK 구 글 검색엔진 은 자원 이 많은 사이트...'로 바 뀌 었 습 니 다.하지만 사실 replace 함수 가 적응 되 지 않 을 수도 있 습 니 다.예 를 들 어 우 리 는 특정한 문자열 안의 모든 연결 을 제거 하고 싶 습 니 다.연결 은 여러 가지 유형 을 포함 할 수 있 습 니 다.replace 는 그 중의 특정한 것 만 대체 할 수 있 습 니 다.우 리 는 하나의 대응 하 는 replace 함수 로 교체 할 수 없 죠?이 작업 대신 정규 표현 식 을 사용 할 수 있 습 니 다.여 기 는 자세하게 이야기 하지 않 겠 습 니 다.1)어떻게 상대방 사이트 의 페이지 넘 김 도 우리 자신의 것 으로 처리 합 니까?정 답 은 replace 함수 와 페이지 매개 변 수 를 이용 한 전달 입 니 다.예 를 들 어 상대방 페이지 에 이러한 페이지 넘 기기 코드 가 포함 되 어 있 습 니 다."다음 페이지"우 리 는 먼저 위 에서 말 한 내용 을 이용 하여 이 문자열 을 가 져 온 다음 에 replace 함수:RsBK=replace(RsBK,"a href=","a href=page.asp?Url=")를 사용 한 다음 에 page.asp 프로그램 에서 Url 의 매개 변수 값 을 가 져 올 수 있 습 니 다.마지막 으로 채집 기술 로 다음 페이지 에서 원 하 는 내용 을 얻 으 면 됩 니 다.(2)가 져 온 내용 을 어떻게 입고 하 는 지 는 편폭 이 제한 되 어 있 기 때문에 간단하게 말씀 드 리 겠 습 니 다.사실은 간단 합 니 다.훔 친 내용 을 처리 하여 데이터 베 이 스 를 기록 할 때 sql 주입 오류 가 발생 하지 않도록 합 니 다.예 를 들 어 replace(String,",""")다음 에 데이터 베 이 스 를 삽입 하 는 sql 명령 을 실행 하면 됩 니 다.이상 은 XML HTTP 구성 요소 에 대한 초급 응용 일 뿐 입 니 다.실제로 그것 이 실현 할 수 있 는 기능 은 아직도 매우 많다.예 를 들 어 원 격 그림 을 로 컬 서버 에 저장 하고 adodb.stream 구성 요소 와 결합 하면 가 져 온 데 이 터 를 데이터베이스 에 저장 할 수 있다.채집 의 역할 과 사용 범위 가 넓다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다: