仓酷云

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

[学习教程] ASP网页设计小偷程序道理

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

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

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

x
想法是和程序员的想法不一样的.至于为什么.大家去想一想.跟心理学有关的程序|小偷程序小偷程序道理和复杂示例
如今网下流行的小偷程序对照多,有旧事类小偷,音乐小偷,下载小偷,那末它们是怎样做的呢,
上面我来做个复杂先容,但愿对列位站长有所匡助。

(一)道理
小偷程序实践上是经由过程了XML中的XMLHTTP组件挪用别的网站上的网页。
好比旧事小偷程序,良多都是挪用了sina的旧事网页,而且对个中的html举行了一些交换,
同时对告白也举行了过滤。用小偷程序的长处有:不必保护网站,由于小偷程序中的数据来自其他网站,它将跟着该网站的更新而更新;能够节俭服务器资本,一样平常小偷程序就几个文件,一切网页内容都是来自其他网站。
弱点有:不不乱,假如方针网站堕落,程序也会堕落,并且,假如方针网站举行晋级保护,那末小偷程序也要举行响应修正;
速率,由于是远程挪用,速率和在当地服务器上读取数据比起来,一定要慢一些。

(二)事例

上面就XMLHTTP在ASP中的使用做个复杂申明

<%
经常使用函数
1、输出url方针网页地点,前往值getHTTPPage是方针网页的html代码
functiongetHTTPPage(url)
dimHttp
setHttp=server.createobject("MSXML2.XMLHTTP")
Http.open"GET",url,false
Http.send()
ifHttp.readystate4then
exitfunction
endif
getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")
sethttp=nothing
iferr.number0thenerr.Clear
endfunction

2、转换乱玛,间接用xmlhttp挪用有中笔墨符的网页失掉的将是乱玛,能够经由过程adodb.stream组件举行转换
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

上面试着挪用http://www.3doing.com/earticle/的html内容
DimUrl,Html
Url="http://www.3doing.com/earticle/";
Html=getHTTPPage(Url)
Response.writeHtml
%>

怎样写ASP进库小偷程序

allen
转载请说明出自玛雅论坛


比来人人都对小偷程序感乐趣,特别是进库类的,在这里我复杂的先容一下。但愿人人对这个能有所懂得,假如您还不晓得甚么叫小偷,请参考我写的别的一片文章(小偷程序道理和复杂示例
):http://www.cnmaya.org/viewthread.php?tid=68&fpage=1

团体以为小偷只是一个很普通的说法,也给良多人带来了曲解,以为小偷是甚么欠好的器材,
实在否则,用数据收罗程序来描述应当更正确些。

这里是我今天刚完成的新浪文娱进库小偷程序::http://www.saynew.com/news/Class/popjb/popjb02.html
在这里我依据该程序的制造复杂先容一下:

进库小偷的道理也很复杂:就是用XMLHTTP远程读取网页的内容,然后依据必要,对读到的内容举行加工(过滤,交换,分类),最初失掉本人必要的数据,到场到数据库中。

起首:我们先用XMLHTTP读取远程网页(我的另外一片文章中有先容)。
其次:对内容举行过滤,这个是对照关头的步骤,好比说,我要从远程网页上提掏出一切url毗连,我应当怎样做呢?

‘这里用的是正则式
SetobjRegExp=NewRegexp创建工具
objRegExp.IgnoreCase=True巨细写疏忽
objRegExp.Global=True全局为真
objRegExp.Pattern="http://.+?";婚配字段
setmm=objRegExp.Execute(str)实行查找,str为输出参数
ForEachMatchinmm进进轮回
Response.write(Match.Value)输入url地点
next

然后,我们必要依据必要做一些交换功效,把不用要的数据交换失落,这个对照复杂,用Replace函数便可。
最初,举行数据库操纵,这个我想人人应当城市,就不做先容了。

ASP小偷进门教程。。。附QQ天色小偷源代码

要做一位好的小偷有点难度:P天真使用XMLHTTP组件你也能够做“小偷”

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

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

程序演示地点:http://www.gtocn.com/tianqi.asp
源码下载:http://www.gtocn.com/tianqi.txt

代码以下:
<%
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比拟,在体积和实行效力上都有者分明的上风,但限于篇幅,这里就纷歧一申明了。

神鹰V霸主
献给进修小偷程序的伴侣

好久没写过器材了,明天看了chinahuman的《用asp主动剖析网页中的图片地点,并将其保留到当地服务器》,因而优化了这个程序,而且将一切的功效都函数化了,但愿对进修XMLHTTP的伴侣有所匡助。
程序完成功效:主动将远程页面的文件中的图片下载到当地。

<%
将本文保留为save2local.asp
测试:save2local.asp?url=http://ent.sina.com.cn/s/m/2003-11-11/1411231388.html
本文依据chinahuman的《用asp主动剖析网页中的图片地点,并将其保留到当地服务器》改编和优化
主动创立目次,主动将原文件名改名,文件格局的限定和其他功效的一些优化
主动保留网页文件中http://....格局的图片到当地
转载请说明出处:http://www.jaron.cnhttp://www.csdn.net/develop
参数设置入手下手
url=request("url")
localaddr=server.MapPath("images_remote/")保留到当地的目次
localdir="images_remote/"http会见的绝对路径
AllowFileExt="jpg|bmp|png|gif"撑持的文件名格局
参数设置终了

ifcreatedir(localaddr)=falsethen
response.Write"创立目次失利,请反省目次权限"
response.End
endif
response.WriteConvert2LocalAddr(url,localaddr,localdir)

functionConvert2LocalAddr(url,localaddr,localdir)
参数申明
url页面地点
localaddr保留当地的物理地点
localdir绝对路径
strContent=getHTTPPage(url)
SetobjRegExp=NewRegexp
objRegExp.IgnoreCase=True
objRegExp.Global=True
objRegExp.Pattern="
<metaname="ProgId"content="FrontPage.Editor.Document">
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<metahttp-equiv="refresh"content="3600">
<title></title>
</head>

<body>
<%
Functionbytes2BSTR(vIn)
strReturn=""
Fori=1ToLenB(vIn)
ThisCharCode=AscB(MidB(vIn,i,1))
IfThisCharCode<&H80Then
strReturn=strReturn&Chr(ThisCharCode)
Else
NextCharCode=AscB(MidB(vIn,i+1,1))
strReturn=strReturn&Chr(CLng(ThisCharCode)*&H100+CInt(NextCharCode))
i=i+1
EndIf
Next
bytes2BSTR=strReturn
EndFunction

Url="http://www.linkmm.com/photo/ads2.html";;;
setoSend=createobject("Microsoft.XMLHTTP")
SourceCode=oSend.open("GET",url,false)
oSend.send()
iferr.number0then
Response.writeerr.description
Response.End()
endif
SourceCode=bytes2BSTR(oSend.responseBody)
baseurl1="http://www.linkmm.com/photo";;;
SourceCode=replace(sourcecode,"src=""img/","src=""http://www.linkmm.com/photo/img/";;;)
SourceCode=replace(sourcecode,"new.gif",baseurl1&"/new.gif")
SourceCode=replace(sourcecode,"href=""photo888","href=""http://www.linkmm.com/photo/photo888";;;)
SourceCode=replace(sourcecode,"site.CSS","http://www.linkmm.com/photo/site.css";;;)
response.writeSourceCode
%>
</body>
</html>只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-18 08:43:11 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
飘灵儿 该用户已被删除
板凳
发表于 2015-1-21 14:52:58 | 只看该作者
运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。
分手快乐 该用户已被删除
地板
发表于 2015-1-30 20:08:22 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
海妖 该用户已被删除
5#
发表于 2015-2-6 15:47:12 | 只看该作者
从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
小女巫 该用户已被删除
6#
发表于 2015-2-16 23:07:06 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
再见西城 该用户已被删除
7#
发表于 2015-3-12 05:41:41 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-11 05:23

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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