asp 로 웹 페이지 의 그림 주 소 를 자동 으로 분석 합 니 다.

1.원본 페이지 의 그림 주 소 를 가 져 옵 니 다.
<%function PicStr(str) Set objectRegExp=New Regexp'설정 대상 objectRegExp.IgnoreCase=True'대소 문자 무시 object RegExp.Global=True'를 전체 텍스트 검색 으로 설정 objRegExp.Pattern = "" '그림 주 소 를 정확하게 꺼 낼 수 있 도록 2 층 설정 으로 나 누 었 습 니 다.먼저 안에 있 는탭 을 찾 은 다음 에 안에 있 는 그림 주소 뒤의 getimgs 함 수 를 꺼 내 는 것 이 다음 기능 입 니 다. strs=trim(str) Set Matches=obj RegExp.Execute(strs)'설정 실행 시작 For Each Match in Matches PicStr=PicStr&getimgs(Match.Value)'2 차 일치 실행 Next  '모든 그림 은 안에 이러한 src="http://그림 의 주소"이기 때문에 정확 한 그림 주소 end functionfunction getimgs(str)를 얻 을 수 있 습 니 다. getimgs="" Set objRegExp1 = New Regexp objRegExp1.IgnoreCase = True objRegExp1.Global = True objRegExp1.Pattern = "http://.+?""" '안에 있 는 주 소 를 꺼내다 set mm=objRegExp1.Execute(str) For Each Match1 in mm getimgs=getimgs&"|"&left(Match1.Value,len(Match1.Value)-1)'안에 있 는 주 소 를 연결 해서 준비 합 니 다. nextend function%>2.그림 을 다운로드 하여 서버 에 저장 합 니 다.
<%function getHTTPPage(url)  on error resume next  dim http  set http=server.createobject("MSXML 2.XMLHTTP")'xmlhttp 방법 으로 그림 의 내용 을 가 져 옵 니 다.  Http.open "GET",url,false  Http.send()  if Http.readystate<>4 then   exit function  end if  getHTTPPage=Http.responseBody  set http=nothing  if err.number<>0 then err.clear end function'은 그림 의 내용 을 저장 해 야 한 다 는 느낌 을 주 었 습 니 다.FSO 로 만 들 면 되 는 것 같 지만 실제로는 안 됩 니 다.그러면 프로그램 을 저장 하 는 데 오류 가 발생 합 니 다.FSO 가 스 트림 파일 을 지원 하지 않 기 때문에 다른 대상 을 호출 해 야 합 니 다:ADO.STREM.구체 적 인 과정 은 다음 과 같다.function savemimage(from,tofile)  dim geturl,objStream,imgs  geturl=trim(from)  imgs=gethttppage(geturl)'그림 의 구 휴 내용 을 얻 는 과정  Set objectStream=Server.CreateObject("ADODB.Stream")'ADODB.Stream 대상 을 만 들 려 면 ADO 2.5 이상 버 전이 필요 합 니 다.  obj Stream.Type=1'을 바 이 너 리 모드 로 엽 니 다.  objStream.Open  obj stream.write imgs'문자열 내용 을 버퍼 에 기록 합 니 다.  obstream.saveToFile server.mappath(tofile),2'-버퍼 내용 을 파일 에 기록 합 니 다.  obj stream.close()'대상 닫 기  set obstream=nothingend function'그래서 방금 얻 은 주소 의 그림 을 한 순환 으로 모두 저장 하면 구체 적 인 과정 은 다음 과 같 습 니 다.arrimg=split(PicStr(str),"|")'문자열 을 나 누 어 안에 있 는 주소 목록 allimg="new img="for i=1 to ubound(arrimg)if arrimg(i)<>"and intr(allimg,arrimg(i)<1 then'이 그림 이 fname=baseurl&cstr(i&mid(arrimg(i),intrrev(arrimg(i),".")saveamage(arrimg(i),fname)'주 소 를 저장 하 는 함수 입 니 다.과정 은 위의 allimg=allimg&"|"&arrimg(i)'이 저 장 된 그림 의 주 소 를 되 돌려 줍 니 다.바 꿀 주 소 를 확인 합 니 다.new img=new img&"|"&fname"로 컬 주 소 를 연결 합 니 다.end ifnext'세 번 째 단 계 는 원래 주 소 를 바 꾸 는 것 입 니 다.구체 적 인 과정 은 다음 과 같다.arrnew=split(new img,"||")'는 원래 의 그림 주소 목록 을 가 져 옵 니 다.arrall=split(allimg,"||")'는 저 장 된 그림 의 주소 목록 for i=1 to ubound(arrnew)'를 가 져 와 원래 의 주 소 를 반복 적 으로 바 꿉 니 다.  strs=replace(strs,arrall(i),arrnew(i))next%>

좋은 웹페이지 즐겨찾기