用正则xmlHttp实现的偷(转)


Posted in Javascript onJanuary 22, 2007
<%  
'========================================  
class EngineerSearch  
'老龙:laolong9999@sina.com  
':模拟XML获取http标记资源(用过之后就知道为什么XML有用:))  
'利用引擎搜索(显示引擎信息或其超连接网站上的信息或直接一个指定页面的相关信息,利用正则和xmlHttp,  
'程序的使用需要会构造正则)  
'---------------------------------------------------------------  
private oReg,oxmlHttp'一个正则,一个微软xmlhttp  
'---------------------------------------------------------------  
public sub class_initialize()'对象建立触发  
set oReg=new regExp  
oReg.Global=true  
oReg.IgnoreCase=true  
set oXmlHttp=server.createobject("Microsoft.XmlHttp")  
end sub  
'---------------------------------------------------------------  
public sub class_terminate()'对象销毁触发  
set oReg=nothing'必须手动释放class内的自建对象,asp只自动释放由class定义的对象  
set oXmlHttp=nothing  
If typename(tempReg)<>"nothing" then'方法体内的对象释放资源  
set tempReg=nothing  
end if  
end sub  
'---------------------------------------------------------------  
'引擎级搜索  
public function engineer(url,EngineerReg)  
'功能介绍:获得url的返回信息(通常用于引擎查找),提取其中的EngineerReg的特定信息,返回matches集合到  
'函数名。获得url查询结果,搜寻出用engineerReg正则定义的结果,生成一个matches集合,  
'由于无法建立集合及操作集合个数(vbscript),最好再自己遍历集合,也可以考虑二维数组  
dim strConent  
strContent=oXmlHttp.open("get",url,false)  
on error resume next  
oXmlHttp.send()  
if err.number<>0 then  
exit function  
end if  
strContent=bytes2BSTR(oXmlHttp.responseBody)  
if isnull(EngineerReg) then  
engineer=AbsoluteURL(strContent,url)  
else  
oReg.Pattern=EngineerReg  
set engineer=oReg.Execute(AbsoluteURL(strContent,url))   
end if  
end function  
'---------------------------------------------------------------  
'汉字编码,(网人)  
public Function bytes2BSTR(vIn)   
strReturn = ""   
For i = 1 To LenB(vIn)   
ThisCharCode = AscB(MidB(vIn,i,1))   
If ThisCharCode < &H80 Then   
strReturn = strReturn & Chr(ThisCharCode)   
Else   
NextCharCode = AscB(MidB(vIn,i+1,1))   
strReturn = strReturn & Chr (CLng(ThisCharCode) * &H100 + CInt(NextCharCode))   
i = i + 1   
End If   
Next   
bytes2BSTR = strReturn   
End Function  
'---------------------------------------------------------------  
public Function SearchReplace(strContent,ReplaceReg,ResultReg)  
'替换,将strContent中的replaceReg描述的字符串用resultReg描述的替换,返回到searchReplace去  
'将正则的replace封装了。  
oReg.Pattern=ReplaceReg  
SearchReplace=oReg.replace(strContent,ResultReg)  
End Function  
'---------------------------------------------------------------  
public Function AbsoluteURL(strContent,byval url)  
'将strContent中的相对URL变成oXmlHttp中指定的url的绝对地址(http/https/ftp/mailto:)  
'正则可以修改修改。  
dim tempReg  
set tempReg=new RegExp  
tempReg.IgnoreCase=true  
tempReg.Global=true  
tempReg.Pattern="(^.*\/).*$"'含文件名的标准路径http://www.wrclub.net/default.aspx  
Url=tempReg.replace(url,"$1")  
tempReg.Pattern="((?:src|href).*?=[\'\u0022](?!ftp|http|https|mailto))"  
AbsoluteURL=tempReg.replace(strContent,"$1"+Url)  
set tempReg=nothing  
end Function  
'---------------------------------------------------------------  
end class  
'========================================  
%>  
<%'例子  
Response.CharSet = "GB2312"   
dim mySearch   
set mySearch=new EngineerSearch  
'URL一定是包含文件扩展名的完整地址,结果是集合,集合中的每个项目是数组,应该这样引用子查询:myMatches(0).subMatches(0)  
set myMatches=mySearch.engineer("http://www.wrclub.net/default.aspx","<img.*?>")  
if myMatches.count=0 Then  
response.write "没有你正则的字符串"  
end if  
if myMatches.count>0 then  
response.write myMatches.count&"<br>"  
for each key in myMatches  
response.write key.firstindex&":"&cstr(key.value)&"<br>"  
next  
end if  
%>  <br><b>更诸多的应用,只要你会正则</b> 
Javascript 相关文章推荐
ext实现完整的登录代码
Aug 08 Javascript
JavaScript中把数字转换为字符串的程序代码
Jun 19 Javascript
浅析jquery某一元素重复绑定的问题
Jan 03 Javascript
jQuery实现径向动画菜单效果
Jul 17 Javascript
Jquery Mobile 自定义按钮图标
Nov 18 Javascript
详解JavaScript的流程控制语句
Nov 30 Javascript
jQuery通过ajax请求php遍历json数组到table中的代码(推荐)
Jun 12 Javascript
jquery.Callbacks的实现详解
Nov 30 Javascript
vue2.0模拟锚点的实例
Mar 14 Javascript
小程序自定义日历效果
Dec 29 Javascript
Flutter部件内部状态管理小结之实现Vue的v-model功能
Jun 11 Javascript
Vue 中使用富文本编译器wangEditor3的方法
Sep 26 Javascript
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
Jan 22 #Javascript
Javascript技术技巧大全(五)
Jan 22 #Javascript
深入认识JavaScript中的函数
Jan 22 #Javascript
Ajax::prototype 源码解读
Jan 22 #Javascript
showModalDialog 和 showModelessDialog
Jan 22 #Javascript
javascript 中对象的继承〔转贴〕
Jan 22 #Javascript
利用javascript中的call实现继承
Jan 22 #Javascript
You might like
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
2011/11/10 PHP
PHP代码保护--Zend Guard的使用详解
2013/06/03 PHP
php 购物车完整实现代码
2014/06/05 PHP
使用php-timeit估计php函数的执行时间
2015/09/06 PHP
PHP面向对象详解(三)
2015/12/07 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
2019/01/17 PHP
用JavaScript 处理 URL 的两个函数代码
2007/08/13 Javascript
json 定义
2008/06/10 Javascript
10款新鲜出炉的 jQuery 插件(Ajax 插件,有幻灯片、图片画廊、菜单等)
2011/06/08 Javascript
jQuery结合PHP+MySQL实现二级联动下拉列表[实例]
2011/11/15 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
2013/11/25 Javascript
jQuery淡入淡出元素让其效果更为生动
2014/09/01 Javascript
JQuery中上下文选择器实现方法
2015/05/18 Javascript
纯js实现手风琴效果代码
2020/04/17 Javascript
Vue.js数据绑定之data属性
2017/07/07 Javascript
如何手动实现es5中的bind方法详解
2018/12/07 Javascript
PHPStorm中如何对nodejs项目进行单元测试详解
2019/02/28 NodeJs
vue 的 solt 子组件过滤过程解析
2019/09/07 Javascript
JS异步宏队列微队列原理详解
2020/09/09 Javascript
[08:08]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY
2014/06/25 DOTA
Python爬虫之xlml解析库(全面了解)
2017/08/08 Python
python爬虫获取淘宝天猫商品详细参数
2020/06/23 Python
对python:threading.Thread类的使用方法详解
2019/01/31 Python
Python中变量的输入输出实例代码详解
2019/07/28 Python
numpy中的meshgrid函数的使用
2019/07/31 Python
一行Python代码制作动态二维码的实现
2019/09/09 Python
python OpenCV GrabCut使用实例解析
2019/11/11 Python
Python连接Oracle之环境配置、实例代码及报错解决方法详解
2020/02/11 Python
pytorch 实现L2和L1正则化regularization的操作
2021/03/03 Python
使用phonegap创建联系人的实现方法
2017/03/30 HTML / CSS
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
迎新晚会主持词
2014/03/24 职场文书
民事起诉书范本
2015/05/19 职场文书
小数乘法教学反思
2016/02/22 职场文书
Python编程super应用场景及示例解析
2021/10/05 Python
python创建字典及相关管理操作
2022/04/13 Python