[
会员中心
] [
发布文章
][
发布软件
] [
中文繁體
]
文章
·
资料
电脑软件
手机软件
网站源码
电脑·手机·网络
学习
话题
娱乐
故事
文化·历史
国学典籍
法律法规
操作系统
网络
办公·文件
音频视频
图形图像
硬件·驱动程序
行业
教学学习
编程
游戏
安卓
苹果
鸿蒙
其他
ASP
ASP.NET
JSP
PHP
HTML
·
CSS
·
JavaScript
本 站 搜 索
文章
软件
[选项]
文章类别:
[全部]
电脑·手机·网络
话题
故事
文化·历史
娱乐
学习
法律·法规
国学典籍
搜索选项:
文章编号
文章标题
文章作者
文章来源
相关链接
关键字词
文章标签
文章内容
软件类别:
[全部]
操作系统
网络
办公·文件
音频视频
图形图像
行业
编程
教学学习
游戏
硬件·驱动程序
安卓系统
苹果系统
鸿蒙系统
其他系统
HTML·CSS·JavaScript
ASP
JSP
PHP
ASP.NET
搜索选项:
软件编号
软件名称
软件作者
软件来源
相关链接
关键字词
软件标签
软件简介
发 送 文 章
ASP小偷程序的设计思路
〖
评论()
〗〖
留言
〗〖
收藏
〗
收信地址
填写收信人的电子邮箱
邮件主题
填写邮件主题
邮件内容
首先介绍几种设计好的函数 ’本程序中已经完成了替换的工作,如果有其他需要的话可以继续进行类似的替换操作。 ’============================================== ’一个采集入库生成本地文件的几个FUCTION ’-------------------------------------------------------------------------------- ’***************************************************************** ’ function ’ 作用 :利用流保存文件 ’ 参数 :from(远程文件地址),tofile(保存文件位置) ’***************************************************************** Private Function SaveFiles(byref from,byref tofile) Dim Datas Datas=GetData(from,0) Response.Write 保存成功:font color=redformatnumber(len(Datas)/1024*2,2)/fontKb 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.readystate4 then exit function if GetMode=0 then GetData = OXML.responseBody else GetData = BytesToBstr(OXML.responseBody) end if if err.number0 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=strpathstrpath/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=strpathstrpath/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)
文章网址:
https://dangbai.cn/Article.asp?ID=10002778
填写邮件内容
发信地址
填写发信人的电子邮箱
邮件签名
填写邮件签名
验证码
填写验证码,单击刷新验证码
程序执行中,请稍候...
发送协议
·欢迎使用本站在线文章发送系统。
·不得使用本站在线发送邮件系统发送垃圾邮件、广告邮件。
·如果收信人地址或其服务器出现错误,可能无法成功发送。
·如果有什么问题,或者意见建议,请联系[
网站管理员
]。
当百网
本站使用【啊估文章软件站】网站系统
〖
网站管理员留言簿
〗