⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clsthief.asp

📁 火车时刻查询小偷 火车时刻查询小偷
💻 ASP
字号:
<% 
Class clsThief
'____________________
Private value_    '窃取到的内容
Private src_      '要偷的目标URL地址
Private isGet_    '判断是否已经偷过

public property let src(str) '赋值—要偷的目标URL地址/属性
src_=str
end property

public property get value '返回值—最终窃取并应用类方法加工过的内容/属性
value=value_
end property

Public Property get Version
	Version="先锋海盗类 Version 2004"
End Property

private sub class_initialize()
value_=""
src_=""
isGet_= false
end sub
	
private sub class_terminate()
end sub

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

public sub steal() '窃取目标URL地址的HTML代码/方法
if src_<>"" then
	dim Http
	set Http=server.createobject("MSXML2.XMLHTTP")
	Http.open "GET",src_ ,false
	Http.send()
	if Http.readystate<>4 then 
		exit sub
	end if
	value_=BytesToBSTR(Http.responseBody,"GB2312")
	isGet_= True
	set http=nothing
	if err.number<>0 then err.Clear
else 
	response.Write("<script>alert(""请先设置src属性!"")</script>")
end if
end sub

'删除偷到的内容中里面的换行、回车符以便进一步加工/方法
public sub noReturn() 
if isGet_= false then call steal()
value_=replace(replace(value_ , vbCr,""),vbLf,"")
end sub

'对偷到的内容中的个别字符串用新值更换/方法
public sub change(oldStr,str) '参数分别是旧字符串,新字符串
if isGet_= false then call steal()
value_=replace(value_ , oldStr,str)
end sub

'按指定首尾字符串对偷取的内容进行裁减(不包括首尾字符串)/方法
public sub cut(head,bot) '参数分别是首字符串,尾字符串
if isGet_= false then call steal()
		if instr(value_ , head)>0 and instr(value_ , bot)>0 then
			value_=mid(value_ ,instr(value_ ,head)+len(head),instr(value_ ,bot)-instr(value_ ,head)-len(head))
		else
			value_= "<p align=""center"">函数cut指定裁减内容不存在,请重新定义"
		end if
end sub

'按指定首尾字符串对偷取的内容进行裁减(包括首尾字符串)/方法
public sub cutX(head,bot) '参数分别是首字符串,尾字符串
if isGet_= false then call steal()
		if instr(value_,head)>0 and instr(value_,bot)>0 then
			value_=mid(value_ ,instr(value_ ,head),instr(value_ ,bot)-instr(value_ ,head)+len(bot))
		else
			value_= "<p align=""center"">函数cutX指定裁减的内容不存在"
		end if
end sub

'按指定首尾字符串位置偏移指针对偷取的内容进行裁减/方法
public sub cutBy(head,headCusor,bot,botCusor) 
'参数分别是首字符串,首偏移值,尾字符串,尾偏移值,左偏移用负值,偏移指针单位为字符数
if isGet_= false then call steal()
		if instr(value_,head)>0 and instr(value_,bot)>0 then
			value_=mid(value_ ,instr(value_ ,head)+len(head)+headCusor,instr(value_ ,bot)-1+botCusor-instr(value_ ,head)-len(head)-headcusor)
		else
			value_= "<p align=""center"">函数cutBy指定裁减内容不存在"
		end if
end sub

'按指定首尾字符串对偷取的内容用新值进行替换(不包括首尾字符串)/方法
public sub filt(head,bot,str) '参数分别是首字符串,尾字符串,新值,新值位空则为过滤
if isGet_= false then call steal()
		if instr(value_,head)>0 and instr(value_,bot)>0 then
			'value_=replace(value_,mid(value_ ,instr(value_ ,head)+len(head),instr(value_ ,bot)-1),str)
			 value_=replace(value_,mid(value_ ,instr(value_ ,head)+len(head) , instr(value_ ,bot)-instr(value_ ,head)-len(head)),str)
			 '起始位置:   首字符串地址+首字符串长度 长度: 尾字符串地址  -首字符串地址  -   首字符串长度
		else
			value_= "<p align=""center"">函数filt指定替换的内容不存在"
		end if
end sub

'按指定首尾字符串对偷取的内容用新值进行替换(包括首尾字符串)/方法
public sub filtX(head,bot,str) '参数分别是首字符串,尾字符串,新值,新值为空则为过滤
if isGet_= false then call steal()
		if instr(value_,head)>0 and instr(value_,bot)>0 then
		       'value_=replace(value_,mid(value_ ,instr(value_ ,head),instr(value_ ,bot)+len(bot)-1),str)
		        value_=replace(value_,mid(value_ ,instr(value_ ,head),instr(value_ ,bot)-instr(value_ ,head)+len(bot)),str)
                        '起始位置:   首字符串地址  长度: 尾字符串地址  -   首字符串地址     +   尾字符串长度
		else
			value_= "<p align=""center"">函数filtX指定替换的内容不存在"
		end if
end sub

'按指定首尾字符串位置偏移指针对偷取的内容新值进行替换/方法
public sub filtBy(head,headCusor,bot,botCusor,str) 
'参数分别是首字符串,首偏移值,尾字符串,尾偏移值,新值,左偏移用负值,偏移指针单位为字符数,新值为空则为过滤
if isGet_= false then call steal()
		if instr(value_,head)>0 and instr(value_,bot)>0 then
			value_=replace(value_ ,mid(value_ ,instr(value_ ,head)+len(head)+headCusor,instr(value_ ,bot)-1+botCusor-instr(value_ ,head)-len(head)-headcusor),str)
		else
			value_= "<p align=""center"">函数filtBy指定替换的内容不存在"
		end if
end sub

'将偷取的内容中的绝对URL地址改为本地相对地址
public sub local()
dim tempReg
set tempReg=new RegExp
tempReg.IgnoreCase=true
tempReg.Global=true
tempReg.Pattern="^(http|https|ftp):(\/\/|////)(\w+.)+(com|net|org|cc|tv|cn|biz|com.cn|net.cn|sh.cn)\/"
value_=tempReg.replace(value_ ,"")
set tempReg=nothing
end sub

'对偷到的内容中的符合正则表达式的字符串用新值进行替换/方法
public sub replaceByReg(patrn,str) '参数是你自定义的正则表达式,新值
if isGet_= false then call steal()
dim tempReg
set tempReg=new RegExp
tempReg.IgnoreCase=true
tempReg.Global=true
tempReg.Pattern=patrn
value_=tempReg.replace(value_ ,str)
set tempReg=nothing
end sub

'应用正则表达式对符合条件的内容进行分块采集并组合,最终内容为以<!--lkstar-->隔断的大文本/方法
'通过属性value得到此内容后你可以用split(value,"<!--lkstar-->")得到你需要的数组
public sub pickByReg(patrn) '参数是你自定义的正则表达式
if isGet_= false then call steal()
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
value_=content
set matches=nothing
set tempReg=nothing
end sub

'类排错模式——在类释放之前应用此方法可以随时查看你截获的内容HTML代码和页面显示效果/方法
public sub debug()
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"">"&value_&"</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
%>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -