仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2259|回复: 19
打印 上一主题 下一主题

[学习教程] ASP网页编程之ASP小偷(近程数据获得)法式的入门教程 ...

[复制链接]
透明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:42:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
asp对于服务器的要求较高,一般的服务器如果访问量一大就垮了,不得不重启。法式|教程|入门教程|数据|入门教程   这里所说的“小偷”指的是在ASP中应用XML中的XMLHTTP组件供应的壮大功效,把近程网站上的数据(图片,网页及其他文件)抓取到当地,经由各类处置后显示到页面上或存储进数据库的一类法式。你可以经由过程这类小偷法式,完成曩昔一些仿佛完整不成能完成的义务,好比说把某个站的页面移花接木后酿成本人的页面,或把某个站的一些数据(文章,图片)保留到当地数据库中加以使用。“小偷”的长处有:不必保护网站,由于小偷法式中的数据来自其他网站,它将跟着该网站的更新而更新;可以节俭大批的办事器资本,普通小偷法式就几个文件,一切网页内容都是来自其他网站。弱点在于:不不乱,假如方针网站失足,法式也会失足,并且,假如方针网站停止晋级保护,那末小偷法式也要停止响应修正;速度,由于是近程挪用,速度和在当地办事器上读取数据比起来,一定要慢一些。怎样,听起来很奇异吧?咱们如今就入手下手来进修一些“小偷”法式的入门常识吧!

咱们拿个复杂点的器材来研讨一下吧,QQ网站上的天色预告法式

代码以下:

<%
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_search?city="&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")

’本法式中已完成了交换的任务,假如有其他需求的话可以持续停止相似的交换操作。

response.write body
%>

交换完需求修正的内容后,就能够把修正的内容显示在页面上了。至此法式停止



法式利用办法及了局:把上述代码去失落申明局部后保留为tianqi.asp,上传到撑持ASP和XML的空间下,在阅读器中运转便可。你可以在在这个法式的基本长进行进一步的界面丑化或法式优化。

以上只是一些关于XMLHTTP组件的低级使用,实践上它还能完成的功效还有良多,好比说保留近程图片到当地办事器上,共同adodb.stream组件可以把获得来的数据保留进数据库。小偷的感化和利用局限都很广。然而不成以拿来做守法的事哦!

或许还有人要问了,这类“小偷”法式岂非只是ASP的专利吗?非也,PHP经由过程fopen函数一样可以完成一样的后果,因为PHP自己的各类特色,写出来的小偷法式和ASP比拟,在体积和履行效力上都有者分明的优势,但限于篇幅,这里就纷歧一申明了。

</p>  缺乏可以共同遵循的行业标准,ASP还处在发展初期,大家对它的理解不同,如产品和服务标准,收费标准等,不利于行业的健康发展。
因胸联盟 该用户已被删除
沙发
发表于 2015-2-4 06:06:00 | 只看该作者
掌握asp的特性而且一定要知道为什么。
活着的死人 该用户已被删除
板凳
发表于 2015-2-9 17:00:36 | 只看该作者
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
谁可相欹 该用户已被删除
地板
发表于 2015-2-9 22:22:34 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
简单生活 该用户已被删除
5#
发表于 2015-2-10 00:34:29 | 只看该作者
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
深爱那片海 该用户已被删除
6#
发表于 2015-2-11 02:51:36 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
变相怪杰 该用户已被删除
7#
发表于 2015-3-1 19:50:41 | 只看该作者
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
莫相离 该用户已被删除
8#
发表于 2015-3-6 13:21:22 | 只看该作者
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
若天明 该用户已被删除
9#
发表于 2015-3-13 01:08:34 | 只看该作者
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
蒙在股里 该用户已被删除
10#
发表于 2015-3-16 19:44:51 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
小女巫 该用户已被删除
11#
发表于 2015-3-22 23:56:09 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
老尸 该用户已被删除
12#
发表于 2015-3-31 11:56:19 | 只看该作者
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
愤怒的大鸟 该用户已被删除
13#
发表于 2015-4-12 19:38:12 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
冷月葬花魂 该用户已被删除
14#
发表于 2015-6-10 05:54:01 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
再现理想 该用户已被删除
15#
发表于 2015-6-14 09:51:22 | 只看该作者
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
金色的骷髅 该用户已被删除
16#
发表于 2015-6-16 20:15:05 | 只看该作者
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
海妖 该用户已被删除
17#
发表于 2015-7-5 00:04:20 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
飘灵儿 该用户已被删除
18#
发表于 2015-7-5 00:22:45 | 只看该作者
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
再见西城 该用户已被删除
19#
发表于 2015-7-7 16:32:58 | 只看该作者
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
山那边是海 该用户已被删除
20#
发表于 2015-7-16 04:59:21 | 只看该作者
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 16:48

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表