文章·资料 电脑软件 手机软件 网站源码




    本 站 搜 索
   推 荐 文 章        More...
华硕易电脑(ASUS Eee PC 10..
先来段开场白:为了外出携带方便..
Acronis True Image 使用..
  一款可以在Windows下使用..
Norton Ghost 使用详解
一、分区备份   使用Ghost..
    文 章 阅 读 排 行
“啊估文章软件站”网站系..
一、调试测试网站系统时,如何..
关于 Firefox 在中国持续..
亲爱的 Firefox 用户及 Firefox..
向日葵远程控制软件,设置..
向日葵远程控制软件有个人版和..
夸克网盘新用户注册如何获..
夸克网盘,新用户注册如何获得1..
FileZilla Server 设置参考
FileZilla Server 启动界面 ..
PakePlus 构建 APP 需要 Gi..
PakePlus 是一个基于 Rust Taur..
电脑显示器使用 HDMI 数据..
如果电脑显示器使用 HDMI 数据..
ASP/JavaScript:不刷新页..
function GuReturnElement(..
分享几个免费申请 SSL 证..
DigiCert 原 Symantec(赛门铁..
关闭微信的个性化推荐广告
有网友说到,微信的初衷是拉近..
 文 章 信 息
ASP小偷程序的设计思路
评论()〗〖留言〗〖收藏
〖文章分类:电脑·手机·网络 / 网站设计·开发·优化〗〖阅读选项
首先介绍几种设计好的函数



’本程序中已经完成了替换的工作,如果有其他需要的话可以继续进行类似的替换操作。
’==============================================

’一个采集入库生成本地文件的几个FUCTION


’--------------------------------------------------------------------------------
’*****************************************************************
’ function
’ 作用 :利用流保存文件
’ 参数 :from(远程文件地址),tofile(保存文件位置)
’*****************************************************************
Private Function SaveFiles(byref from,byref tofile)
Dim Datas
Datas=GetData(from,0)
Response.Write "保存成功:<font color=red>"&formatnumber(len(Datas)/1024*2,2)&"</font>Kb"
response.Flush
if formatnumber(len(Datas)/1024*2,2)>1 then
ADOS.Type = 1
ADOS.Mode =3
ADOS.Open
ADOS.write Datas
ADOS.SaveToFile server.mappath(tofile),2
ADOS.Close()
else
Response.Write "保存失败:<font color=red>文件大小"&formatnumber(len(imgs)/1024*2,2)&"Kb,小于1K</font>"
response.Flush
end if
end function

’*****************************************************************
’ function(私有)
’ 作用 :利用fso检测文件是否存在,存在返回true,不存在返回false
’ 参数 :filespes(文件位置)
’*****************************************************************
Private Function IsExists(byref filespec)
If (FSO.FileExists(server.MapPath(filespec))) Then
IsExists = True
Else
IsExists = False
End If
End Function
’*****************************************************************
’ function(私有)
’ 作用 :利用fso检测文件夹是否存在,存在返回true,不存在返回false
’ 参数 :folder(文件夹位置)
’*****************************************************************
Private Function IsFolder(byref Folder)
If FSO.FolderExists(server.MapPath(Folder)) Then
IsFolder = True
Else
IsFolder = False
End If
End Function

’*****************************************************************
’ function(私有)
’ 作用 :利用fso创建文件夹
’ 参数 :fldr(文件夹位置)
’*****************************************************************
Private Function CreateFolder(byref fldr)
Dim f
Set f = FSO.CreateFolder(Server.MapPath(fldr))
CreateFolder = f.Path
Set f=nothing
End Function

’*****************************************************************
’ function(公有)
’ 作用 :保存文件,并自动创建多级文件夹
’ 参数 :fromurl(远程文件地址),tofiles (保存位置)
’*****************************************************************
Public Function SaveData(byref FromUrl,byref ToFiles)
ToFiles=trim(Replace(ToFiles,"//","/"))
flName=ToFiles
fldr=""
If IsExists(flName)=false then
GetNewsFold=split(flName,"/")
For i=0 to Ubound(GetNewsFold)-1
if fldr="" then
fldr=GetNewsFold(i)
else
fldr=fldr&"\"&GetNewsFold(i)
end if
If IsFolder(fldr)=false then
CreateFolder fldr
End if
Next
SaveFiles FromUrl,flName
End if
End function
’*****************************************************************
’ function(公有)
’ 作用 :取得远程数据
’ 参数 :url(远程文件地址),getmode (模式:0为二进制,1为中文编码)

’*****************************************************************
Public Function GetData(byref url,byref GetMode)
’on error resume next
SourceCode = OXML.open ("GET",url,false)
OXML.send()
if OXML.readystate<>4 then exit function
if GetMode=0 then
GetData = OXML.responseBody
else
GetData = BytesToBstr(OXML.responseBody)
end if
if err.number<>0 then err.Clear
End Function

’*****************************************************************
’ function(公有)
’ 作用 :格式化远程图片地址为本地位置
’ 参数 :imgurl(远程图片地址),imgfolder (本地图片目录),fristname(加入的前缀名称)
’*****************************************************************
Public Function FormatImgPath(byref ImgUrl,byref ImgFolder,byref FristName,byref noimg)
strpath=""
ImgUrl=ImgUrl
if instr(ImgUrl,"Nophoto") or lenb(GetData(ImgUrl,0))<=0 then
strpath=noimg
Response.Write "<a href="&strpath&">"&strpath&"</a>" &VBcrlf
else
if Instr(ImgUrl,".ASP") then
strpath=FristName&"_"&Mid(ImgUrl, InStrRev(ImgUrl, "=")+1)&".jpg"
else
strpath=FristName&"_"&Mid(ImgUrl, InStrRev(ImgUrl, "/")+1)
end if
strpath = ImgFolder&"/"&strpath
strpath = Replace(strpath,"//","/")
if left(strpath,1)="/" then strpath=right(strpath,len(strpath)-1)
strpath = trim(strpath)
Response.Write "<a href="&strpath&">"&strpath&"</a>" &vbcrlf
savedata ImgUrl,strpath
end if
FormatImgPath = strpath
End function
%>


现在分类介绍几种汲取的方法。

入库小偷的原理也很简单:就是用XMLHTTP远程读取网页的内容,然后根据需要,对读到的内容进行加工(过滤,替换,分类),最后得到自己需要的数据,加入到数据库中。
首先:我们先用XMLHTTP读取远程网页(我的另一片文章中有介绍)。
其次:对内容进行过滤,这个是比较关键的步骤,比如说,我要从远程网页上提取出所有url连接,我应该怎么做呢?
代码:
‘这里用的是正则式
Set objRegExp = New Regexp ’建立对象
objRegExp.IgnoreCase = True ’大小写忽略
objRegExp.Global = True ’全局为真
objRegExp.Pattern = "http://.+?"’ 匹配字段
set mm=objRegExp.Execute(str) ’执行查找,str为输入参数
For Each Match in mm ’进入循环
Response.write(Match.Value) ’输出url地址
next


然后,我们需要根据需要做一些替换功能,把不必要的数据替换掉,这个比较简单,用Replace函数即可。
最后,进行数据库操作
-------------------------------
一个例子
代码:
<%
On Error Resume Next
Server.ScriptTimeOut=9999999
Function getHTTPPage(Path)
t = GetBody(Path)
getHTTPPage=BytesToBstr(t,"GB2312")
End function

’首先,进行小偷程序的一些初始化设置,以上代码的作用分别是忽略掉所有非致命性错误,把小偷程序的运行超时时间设置得很长(这样不会出现运行超时的错误),转换原来默认的UTF-8编码转换成GB2312编码,否则直接用XMLHTTP组件调用有中文字符的网页得到的将是乱码。

Function GetBody(url)
on error resume next
Set Retrieval = CreateObject("Microsoft.XMLHTTP")
With Retrieval
.Open "Get", url, False, "", ""
.Send
GetBody = .ResponseBody
End With
Set Retrieval = Nothing
End Function

’然后调用XMLHTTP组件创建一个对象并进行初始化设置。

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

Function Newstring(wstr,strng)
Newstring=Instr(lcase(wstr),lcase(strng))
if Newstring<=0 then Newstring=Len(wstr)
End Function

’处理抓取回来的数据需要调用adodb.stream组件并进行初始化设置。%>

’以下即为页面显示部分

<%
Dim wstr,str,url,start,over,city
’定义一些需要使用到的变量

city = Request.QueryString("id")
’程序传回的ID变量(即用户选择的城市)赋给id

url="http://appnews.qq.com/cgi-bin/news_qq_sea ... amp;city&"
’这里设置需要抓取的页面地址,当然你也可以直接指定某个地址而不使用变量
wstr=getHTTPPage(url)
’获取指定页面的全部数据

start=Newstring(wstr," <html>")
’这里设置需要处理的数据的头部,这个变量应视不同情况而设置,具体内容可以通过查看需要抓取的页面的源代码来确定。因为在这个程序里我们需要抓取整个页面,所以设置为页面全部抓取。注意,设置的内容必须是页面内容唯一的,不可以重复。

over=Newstring(wstr," </HTML>")
’和start相对应的就是需要处理的数据的尾部,同样的,设置的内容必须是页面中唯一的。

body=mid(wstr,start,over-start)
’设置显示页面的范围

’下面就是动用乾坤挪移大法的时候了,通过replace可以用一些字符替换掉数据中指定的字符。

body = replace(body,"skin1","天气预报 - 斯克网络")
body = replace(body,"http://appnews.qq.com/cgi-bin/news_qq_search?city" ,"tianqi.asp?id")

文章作者:未知  更新日期:2009-07-07
〖文章浏览:〗〖发送文章〗〖打印文章
相关文章 ·ASP小偷程序需要用到的函数:用于可控制删除文本中的 HTML 标签2009-07-07
·利用ASP小偷和Google实现在线翻译功能的代码2009-07-07
·做ASP小偷时.经常需要用到的函数2009-07-07
〖文章阅读说明〗
·本站大部分文章转载于网络,如有侵权请留言告知,本站即做删除处理。
·本站法律法规类文章转载自[中国政府网(www.org.cn)],相关法律法规如有修订,请浏览[中国政府网]网站。
·本站转载的文章,不为其有效性,实效性,安全性,可用性等做保证。
·如果有什么问题,或者意见建议,请联系[网站管理员]。