仓酷云

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

[学习教程] ASP网页编程之ASP小偷程序的进门教程(远程数据猎取)

[复制链接]
爱飞 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:11:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
使用filesystemobject,可以对服务器上的文件进行操作,浏览、复制、移动、删除等。有ado的支持,asp对数据库的操作非常得心应手。你甚至可以像使用本地数据库那样,管理远程主机上的数据库,对表格、记录进行各种操作。程序|教程|进门教程|数据|小偷程序  这里所说的“小偷”指的是在ASP中使用XML中的XMLHTTP组件供应的壮大功效,把远程网站上的数据(图片,网页及其他文件)抓取到当地,经由各类处置后显现到页面上大概存储进数据库的一类程序。你能够经由过程这类小偷程序,完成已往一些仿佛完整不成能完成的义务,好比说把某个站的页面移花接木后酿成本人的页面,大概把某个站的一些数据(文章,图片)保留到当地数据库中加以使用。“小偷”的长处有:不必保护网站,由于小偷程序中的数据来自其他网站,它将跟着该网站的更新而更新;能够节俭大批的服务器资本,一样平常小偷程序就几个文件,一切网页内容都是来自其他网站。弱点在于:不不乱,假如方针网站堕落,程序也会堕落,并且,假如方针网站举行晋级保护,那末小偷程序也要举行响应修正;速率,由于是远程挪用,速率和在当地服务器上读取数据比起来,一定要慢一些。怎样,听起来很奇妙吧?我们如今就入手下手来进修一些“小偷”程序的进门常识吧!

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

  代码以下:

<%
OnErrorResumeNext
Server.ScriptTimeOut=9999999
FunctiongetHTTPPage(Path)
t=GetBody(Path)
getHTTPPage=BytesToBstr(t,"GB2312")
Endfunction

’起首,举行小偷程序的一些初始化设置,以上代码的感化分离是疏忽失落一切非致命性毛病,把小偷程序的运转超不时间设置得很长(如许不会呈现运转超时的毛病),转换本来默许的UTF-8编码转换成GB2312编码,不然间接用XMLHTTP组件挪用有中笔墨符的网页失掉的将是乱码。

FunctionGetBody(url)
onerrorresumenext
SetRetrieval=CreateObject("Microsoft.XMLHTTP")
WithRetrieval
.Open"Get",url,False,"",""
.Send
GetBody=.ResponseBody
EndWith
SetRetrieval=Nothing
EndFunction

’然后挪用XMLHTTP组件创立一个工具并举行初始化设置。

FunctionBytesToBstr(body,Cset)
dimobjstream
setobjstream=Server.CreateObject("adodb.stream")
objstream.Type=1
objstream.Mode=3
objstream.Open
objstream.Writebody
objstream.Position=0
objstream.Type=2
objstream.Charset=Cset
BytesToBstr=objstream.ReadText
objstream.Close
setobjstream=nothing
EndFunction

FunctionNewstring(wstr,strng)
Newstring=Instr(lcase(wstr),lcase(strng))
ifNewstring<=0thenNewstring=Len(wstr)
EndFunction

’处置抓取返来的数据必要挪用adodb.stream组件并举行初始化设置。%>

’以下即为页面显现部分

<%
Dimwstr,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.writebody
%>

  交换完必要修正的内容后,就能够把修正的内容显现在页面上了。至此程序停止

  程序利用办法及了局:把上述代码往失落申明部分后保留为tianqi.asp,上传到撑持ASP和XML的空间下,在扫瞄器中运转便可。你能够在在这个程序的基本长进行进一步的界面丑化大概程序优化。

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

  大概另有人要问了,这类“小偷”程序岂非只是ASP的专利吗?非也,PHP经由过程fopen函数一样能够完成一样的效果,因为PHP自己的各类特性,写出来的小偷程序和ASP比拟,在体积和实行效力上都有者分明的上风,但限于篇幅,这里就纷歧一申明了</U></U>我想详细了解ASP整站代码与PSP整站代码有什么优缺点,那个更好,更安全,更用容易维护,和管理。。。
冷月葬花魂 该用户已被删除
沙发
发表于 2015-1-18 21:45:54 | 只看该作者
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
若天明 该用户已被删除
板凳
发表于 2015-1-26 07:06:17 | 只看该作者
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
乐观 该用户已被删除
地板
发表于 2015-2-4 13:54:34 | 只看该作者
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
蒙在股里 该用户已被删除
5#
发表于 2015-2-10 01:34:11 | 只看该作者
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
6#
发表于 2015-2-28 14:43:14 | 只看该作者
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
海妖 该用户已被删除
7#
发表于 2015-3-10 00:28:02 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
再见西城 该用户已被删除
8#
发表于 2015-3-17 04:06:50 | 只看该作者
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
小女巫 该用户已被删除
9#
发表于 2015-3-23 18:26:51 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-24 03:06

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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