一小偷类!!有兴趣的可以看看

所属分类: 网络编程 / ASP编程 阅读数: 733
收藏 0 赞 0 分享
类代码 (cls.asp)
<%

Class clsThief

Private strUrl    ' 偷取地址
Private strValue  ' 偷取的内容,所有内容
Private strResult ' 偷取结果,可以具体某一块内容
Private flag      ' 是否已经偷过

'-------初始化类--------'
Private Sub Class_Initialize()
    strUrl=""
 strValue=""
 strResult=""
 flag=false
End Sub

'------类结束-----------'
Private Sub Class_Terminate()
End Sub

'------初始化url属性----'
Public Property Let url(ByVal iurl)
    strUrl = iurl
End Property

'------返回输出内容----'
public property get value 
    value=strValue
end property

public property get result 
    result=strResult
end property

'------------文字处理-----------'
private Function BytesToBstr(body,Cset) 
    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 = Cset
    BytesToBstr = objstream.ReadText 
    objstream.Close
    set objstream = nothing
End Function

'-------文字处理-------'
private Function Ichange(str)
    Dim finalStr
 Dim icharCode
 Dim inextCode
    For i = 1 To lenb(str)
        icharCode = ascb(midb(str,i,1))
        If icharCode < &H80 Then
            finalStr = finalStr & chr(icharCode)
        Else
            inextCode = ascb(midb(str,i+1,1))
            finalstr = finalstr & chr(clng(icharCode) * &H100 + cint(inextCode))
            i = i + 1
        End If
    Next
Ichange = finalStr
End Function

'-------内容抓取--------'
Public sub Seize()
    if strUrl<>"" then
     dim iconnect
  Set iconnect = CreateObject("Microsoft.XMLHTTP")
        iconnect.open "GET",strUrl,false 
        iconnect.send()

  strValue = BytesToBSTR(iconnect.responseBody,"GB2312")
  flag=true
  set iconnect = nothing
  if err.number<>0 then err.Clear
 else
     response.write("请设置url的属性,即url地址")
 end if
end sub

'------内容分析------'
Public sub Assay(head,headCusor,bot,botCusor)
    if flag = false then call Seize()
    if instr(strValue,head) and instr(strValue,bot) then
  dim inum
  inum = len(strValue)-instr(strValue,head)-len(head)-headCusor
  strValue=right(strValue,inum)
     inum = instr(strValue,bot)-1+botCusor
  strResult=left(strValue,inum)
 else
  strResult = "没有匹配到相关记录,请检查开始标记代码是否唯一"
    end if 
end sub

'----替换空格及回车行----'
public sub Shift() 
if flag= false then call Seize()
    strResult=replace(replace(strResult , vbCr,""),vbLf,"")
end sub

'------对内容自定义替换----'
Public sub Change(oldStr,newStr)
    if flag=false then call Seize()
 strResult = replace(strResult,oldStr,newStr)
end sub

'--------自定义正则进行匹配---'
public sub pickByReg(patrn) 
    if isGet_= false then call Seize()
    dim tempReg,match,matches,content
    set tempReg=new RegExp
    tempReg.IgnoreCase=true
    tempReg.Global=true
    tempReg.Pattern=patrn
    set matches=tempReg.execute(value_)
    for each match in matches
    content=content&match.value&"<!--lkstar-->"
    next
    strValue=content
    set matches=nothing
    set tempReg=nothing
end sub

'--------如果有首页文件则转入-----------'
Public sub CheckFile(folderName,fileName)
    dim url
 Set fs=Server.CreateObject("Scripting.FileSystemObject")
 if fs.FolderExists(server.MapPath("./")&"\"&folderName&"\"&fileName) then 
     set fs = nothing
  url = folderName&"/"&fileName
  response.write url
  'response.redirect url
 end if
end sub

'------生成文件------'
Public sub MakeFile(folderName,fileName)
    Set fs=Server.CreateObject("Scripting.FileSystemObject")

    if folderName<>"" then
     if not fs.FolderExists(server.MapPath("/"&folderName&"/")) then 
            response.write "文件不存在"
      fs.CreateFolder(folderName)
     else
         response.write "文件存在"
        end if
 end if

    Set CrFi=fs.CreateTextFile(server.MapPath("./")&"\"&folderName&"\"&fileName)
        Crfi.Writeline(strResult)
    set CrFi=nothing
    set fs=nothing
 dim url
 url = folderName&"/"&fileName
    response.redirect url

end sub

'-------查看偷出的代码----'
public sub look()
    dim tempstr
    tempstr="<SCRIPT>function runEx(){var winEx2 = window.open("""", ""winEx2"", ""width=500,height=300,status=yes,menubar=no,scrollbars=yes,resizable=yes""); winEx2.document.open(""text/html"", ""replace""); winEx2.document.write(unescape(event.srcElement.parentElement.children[0].value)); winEx2.document.close(); }function saveFile(){var win=window.open('','','top=10000,left=10000');win.document.write(document.all.asdf.innerText);win.document.execCommand('SaveAs','','javascript.htm');win.close();}</SCRIPT><center><TEXTAREA id=asdf name=textfield rows=32  wrap=VIRTUAL cols=""120"">"&strResult&"</TEXTAREA><BR><BR><INPUT name=Button onclick=runEx() type=button value=""查看效果"">&nbsp;&nbsp;<INPUT name=Button onclick=asdf.select() type=button value=""全选"">&nbsp;&nbsp;<INPUT name=Button onclick=""asdf.value=''"" type=button value=""清空"">&nbsp;&nbsp;<INPUT onclick=saveFile(); type=button value=""保存代码""></center>"
    response.Write(tempstr)
end sub

end class
%>

引用页(test.asp)

<!--#Include File="cls.asp"-->
<%
  dim myThief,value
  set myThief = new clsThief   '实例化类
  myThief.CheckFile "","index.html"  '检测是否已经偷过并生成
  myThief.url="http://www.sohu.com"  '目标URL
  myThief.Seize                                                   '开始偷取
  myThief.Assay "<html>","-7","</html>","7"        '剪切标记
  myThief.Change "择优","浪人"                        '进行替换
  value = myThief.result                                      '最后得到的内容
  myThief.MakeFile "","index.html"                      '生成文件
  set myThief = nothing
  'response.write value
%>
更多精彩内容其他人还在看

asp知识整理笔记4(问答模式)

这是关于asp知识整理的最后一份笔记,希望大家仔细阅读。
收藏 0 赞 0 分享

ASP基础知识VBScript基本元素讲解

这篇文章主要介绍了ASP基础知识VBScript基本元素的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

ASP编码和解码函数详解

这篇文章主要介绍了ASP编码和解码函数的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

ASP显示页面执行时间的方法

这篇文章主要介绍了ASP显示页面执行时间的方法,在本地测试一下输出页面需要多少时间,需要的朋友可以参考下
收藏 0 赞 0 分享

ASP基础入门第一篇(ASP技术简介)

本文将以 Active Server Pages 为中心,向你全面展示制作动态商业网站的步骤和技巧并通过大量的实例,让你在不断的理论和实践之中笑傲“网络”……
收藏 0 赞 0 分享

ASP基础入门第二篇(ASP基础知识)

这篇文章是ASP基础入门第二篇,第一篇展示了ASP动态网站设计的一些最基本的方法,相信通过实践各位对 ASP 已经有了最基本的了解,本文将进一步介绍ASP动态网站的一些基本技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

ASP基础入门第三篇(ASP脚本基础)

通过前两篇的学习,相信各位已经对 ASP 的动态网站设计有了一个基本的概念和整体的印象。从本篇开始作者将从脚本语言的使用着手,由浅入深地带领大家探索 ASP 动态网站设计的真正奥秘。
收藏 0 赞 0 分享

ASP基础入门第四篇(脚本变量、函数、过程和条件语句)

大家在学习了脚本语言 VBScript 的变量、常量和过程的基本概念后,本期将继续向各位介绍 VBScript 的函数和语法。
收藏 0 赞 0 分享

ASP基础入门第五篇(ASP脚本循环语句)

在本文上两篇中,我们学习了脚本语言 VBScript 的变量、函数、过程和条件语句,本篇将继续给大家介绍 VBScipt 的循环语句,并对脚本语言在 ASP 中的应用加以总结。  
收藏 0 赞 0 分享

ASP基础入门第六篇(ASP内建对象Request)

从本篇开始作者从 ASP 内建对象着手,为大家详细剖析 ASP 的六个内建对象和各种组件的特性和方法,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多