飘灵儿 发表于 2015-1-16 22:20:11

ASP教程之网站天生静态页面攻略 -- 数据收罗

Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。收罗|攻略|静态|数据|页面收罗程序的次要步骤以下:

1、猎取被收罗的页面的内容
2、从猎取代码中提取一切用的数据

1、猎取被收罗的页面的内容

我今朝所把握的ASP经常使用猎取被收罗的页面的内容办法:

1、用serverXMLHTTP组件猎取数据
FunctionGetBody(weburl)
-----------------翟振恺(小琦)
创立工具
DimObjXMLHTTP
SetObjXMLHTTP=Server.CreateObject("MSXML2.serverXMLHTTP")
哀求文件,以异步情势
ObjXMLHTTP.Open"GET",weburl,False
ObjXMLHTTP.send
WhileObjXMLHTTP.readyState4
ObjXMLHTTP.waitForResponse1000
Wend
失掉了局
GetBody=ObjXMLHTTP.responseBody
开释工具
SetObjXMLHTTP=Nothing
-----------------翟振恺(小琦)
EndFunction
挪用办法:GetBody(文件的URLf地点)

2、或XMLHTTP组件猎取数据
FunctionGetBody(weburl)
-----------------翟振恺(小琦)
创立工具
SetRetrieval=CreateObject("Microsoft.XMLHTTP")
WithRetrieval
.Open"Get",weburl,False,"",""
.Send
GetBody=.ResponseBody
EndWith
开释工具
SetRetrieval=Nothing
-----------------翟振恺(小琦)
EndFunction
挪用办法:GetBody(文件的URLf地点)

如许猎取的数据内容还必要举行编码转换才可使用
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
挪用办法:BytesToBstr(要转换的数据,编码)编码经常使用为GB2312和UTF-8。

2、从猎取代码中提取一切用的数据

1、用ASP内置的MID函数截取必要的数据
Functionbody(wstr,start,over)
-----------------翟振恺(小琦)
start=Newstring(wstr,start)
设置必要处置的数据的独一的入手下手标志
over=Newstring(wstr,over)
和start绝对应的就是必要处置的数据的独一的停止标志
body=mid(wstr,start,over-start)
设置显现页面的局限
-----------------翟振恺(小琦)
EndFunction
挪用办法:body(被收罗的页面的内容,入手下手标志,停止标志)

2、用正则猎取必要的数据
Functionbody(wstr,start,over)
-----------------翟振恺(小琦)
Setxiaoqi=NewRegexp设置设置工具
xiaoqi.IgnoreCase=True疏忽巨细写
xiaoqi.Global=True设置为全文搜刮
xiaoqi.Pattern="”&start&“.+?”&over&“"正则表达式
SetMatches=xiaoqi.Execute(wstr)入手下手实行设置
setxiaoqi=nothing
body=""
ForEachMatchinMatches
body=body&Match.Value轮回婚配
Next
-----------------翟振恺(小琦)
EndFunction
挪用办法:body(被收罗的页面的内容,入手下手标志,停止标志)

收罗程序祥细思绪:

1、获得网站的分页列表页的每页地点
今朝尽年夜部分静态网站的分页地点都有划定规矩,如:
静态页
第一页:index.asp?page=1
第二页:index.asp?page=2
第三页:index.asp?page=3
.....

静态页
第一页:page_1.htm
第二页:page_2.htm
第三页:page_3.htm
.....

获得网站的分页列表页的每页地点,只必要用变量替换每页地点的变更的字符便可如:page_<%="&page&"%>.htm

2、猎取被收罗网站的分页列表页内容

3、从分页列表代码中提取被收罗的内容页面的URL毗连地点
尽年夜部分分页页面里的内容页毗连也有流动划定规矩,如:
<ahref="url1">毗连1</a><br>
<ahref="url2">毗连2</a><br>
<ahref="url3">毗连3</a><br>

用以下代码就能够取得一个URL毗连汇合
-----------------翟振恺(小琦)
Setxiaoqi=NewRegexp
xiaoqi.IgnoreCase=True
xiaoqi.Global=True
xiaoqi.Pattern=””“.+?”““
SetMatches=xiaoqi.Execute(页面列表内容)
setxiaoqi=nothing
url=""
ForEachMatchinMatches
url=url&Match.Value
Next
-----------------翟振恺(小琦)
4、获得被收罗的内容页面内容,依据”提取标志“从被收罗的内容页面分离截取要获得的数据。

由于是静态天生的页面,年夜多半内容页面内都有不异的html标志,我们能够依据这些有划定规矩的标志提取必要的各个部分的内容。如:

每一个页面都有网页题目<title>网页题目</title>,用我下面写的MID截取函数就能够取得<title></title>之间的值,也能够用正则表达式来取得。
例:body("<title>网页题目</title>","<title>","</title>")减少客户内IT专业人才缺乏带来的影响。ASP的客户员工利用浏览器进入相关的应用软件,简单易用,无需专业技术支持。

飘飘悠悠 发表于 2015-1-19 09:00:00

你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。

小妖女 发表于 2015-1-24 12:03:06

ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:

只想知道 发表于 2015-2-1 10:08:47

不能只是将它停留在纸上谈兵的程度上。

谁可相欹 发表于 2015-2-7 03:06:10

另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)

蒙在股里 发表于 2015-2-20 02:22:23

多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。

深爱那片海 发表于 2015-3-6 16:20:28

ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。

冷月葬花魂 发表于 2015-3-13 04:09:42

Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")

老尸 发表于 2015-3-20 12:32:46

Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件
页: [1]
查看完整版本: ASP教程之网站天生静态页面攻略 -- 数据收罗