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

类代码 (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=""查看效果"">  <INPUT name=Button onclick=asdf.select() type=button value=""全选"">  <INPUT name=Button onclick=""asdf.value=''"" type=button value=""清空"">  <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
%>

(0)

相关推荐

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

    类代码 (cls.asp) <% Class clsThief Private strUrl    ' 偷取地址 Private strValue  ' 偷取的内容,所有内容 Private strResult ' 偷取结果,可以具体某一块内容 Private flag      ' 是否已经偷过 '-------初始化类--------' Private Sub Class_Initialize()     strUrl=""  strValue=""  s

  • CSS 美化段落文本之首字下沉

    Selector:first-letter {font-size:2.5em; font-family:"楷体_GB2312"; font-weight:bold; line-height:1.2em; float:left; padding:5px 2px 0 0; color:#c00;} 如果你觉得还不是很清楚,那么这里就细细讲述一下: 首先要在HTML中有一段自己的文本,是在<p></p>中的也好,在其它块标签中都可以.给他个ID也好,class也好,直

  • javascript设计模式 – 策略模式原理与用法实例分析

    本文实例讲述了javascript设计模式 – 策略模式原理与用法.分享给大家供大家参考,具体如下: 介绍:策略模式中可以定义一些独立的类来封装不同的算法,每一个类封装一种具体的算法.在这里,每一种算法的封装都可以称之为一种策略.策略模式的主要目的是将算法的定义与使用分开. 定义:定义一系列算法类,将每一个算法封装起来,并让它们可以相互替换.策略模式让算法独立与使用它的客户而变化,也称为政策模式.策略模式是一种对象行为型模式. 场景:使用策略模式实现一个加减乘除的工具类,将四个算法进行封装. 示

  • Spring通过Java配置集成Tomcat的方法

    添加Tomcat依赖 <!-- 自己编译的版本--> <dependency> <groupId>org.apache</groupId> <artifactId>apache-tomcat-9.0.36-src</artifactId> <version>1.0-SNAPSHOT</version> </dependency> 首先需要一个tomcat启动类 public class Tomcat

  • ASP.NET Core中间件初始化的实现

    前言 在日常使用ASP.NET Core开发的过程中我们多多少少会设计到使用中间件的场景,ASP.NET Core默认也为我们内置了许多的中间件,甚至有时候我们需要自定义中间件来帮我们处理一些请求管道过程中的处理.接下来,我们将围绕着以下几个问题来简单探究一下,关于ASP.NET Core中间件是如何初始化的 首先,使用UseMiddleware注册自定义中间件和直接Use的方式有何不同 其次,使用基于约定的方式定义中间件和使用实现IMiddleware接口的方式定义中间件有何不同 再次,使用基

  • 基于OpenCV目标跟踪实现人员计数器

    目录 1.了解对象检测与对象跟踪 2.结合对象检测和对象跟踪 3.项目结构 4.结合对象跟踪算法 5.创建可追踪对象 6.使用OpenCV+Python实现我们的人员计数器 7.完整代码 people_counter.py centroidtracker.py trackableobject.py 8.运行结果 9.改进我们的人员计数器应用程序 BONUS 在本教程中,您将学习如何使用 OpenCV 和 Python 构建人员计数器.使用 OpenCV,我们将实时计算进或出百货商店的人数. 在今

  • 发一个采集(小偷)用的类,ASP+缓存实现

    简单采集类1.0测试版------------------------------Cls_Ajax.asp 负责采集网页Cls_Filter.asp 负责过滤数据Cls_Thief.asp 前2个类的整合,并负责数据处理和缓存 演示和使用已在index.asp给出 这里的抓取多已百度为主,原因是页面简洁,容易写正则 其实很多地方,抓rss效果和效率会更好, 本人只是在上次看到一个ajax留言本后,用此练习下,类的功能很简单,仅用于练习 正则写的不好,望高手指点 演示地址:http://home.

  • PHP小偷程序的设计与实现方法详解

    本文实例讲述了PHP小偷程序的设计与实现方法.分享给大家供大家参考,具体如下: 其实自己一直想做一个内涵图片的网站,以前的想法是做一个CMS,然后自己上传一些图片.. 开始真这么做的,没什么动力.之后就放弃了,后来研究了一个CURL.反正还是把这个想法实现比较好. 用PHP盗图,就好比:穿着袜子穿凉鞋一样.虽然没问题,但看着确实蛋疼. 我先说一下我对PHP小偷程序的设计,PHP不支持多线程,这样就只能分先后顺序来做了 获取到目标网站的HTML页面+解析HTML页面获取到图片存储的连接+用二进制方

  • Java实现的文本字符串操作工具类实例【数据替换,加密解密操作】

    本文实例讲述了Java实现的文本字符串操作工具类.分享给大家供大家参考,具体如下: package com.gcloud.common; import org.apache.commons.lang.StringUtils; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.text.BreakIterator; import java.util.Array

  • Java实现的图片上传工具类完整实例

    本文实例讲述了Java实现的图片上传工具类.分享给大家供大家参考,具体如下: package com.gcloud.common; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.*; /** * 图片上传工具类 * Created by charlin on 2017/9/10. */ public class UploadImageUtil { private String f

随机推荐