用正则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 相关文章推荐
Javascript 鼠标移动上去 滑块跟随效果代码分享
Nov 23 Javascript
如何判断元素是否为HTMLElement元素
Dec 06 Javascript
JavaScript中对象property的删除方法介绍
Dec 30 Javascript
基于jQuery的AJAX和JSON实现纯html数据模板
Aug 09 Javascript
聊一聊Vue.js过渡效果
Sep 07 Javascript
Bootstrap幻灯片轮播图支持触屏左右手势滑动的实现方法
Oct 13 Javascript
JavaScript实现的CRC32函数示例
Nov 23 Javascript
JS数字千分位格式化实现方法总结
Dec 16 Javascript
js实现带缓动动画的导航栏效果
Jan 16 Javascript
angular $watch 一个变量的变化(实例讲解)
Aug 02 Javascript
jQuery实现动画、消失、显现、渐出、渐入效果示例
Sep 06 jQuery
微信小程序导航栏跟随滑动效果的实现代码
May 14 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引用返回与取消引用的详解
2013/06/08 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
2016/11/25 PHP
简单实现php上传文件功能
2017/09/21 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
Laravel框架Eloquent ORM修改数据操作示例
2019/12/03 PHP
php生成短网址/短链接原理和用法实例分析
2020/05/29 PHP
[转]JS宝典学习笔记
2007/02/07 Javascript
解读IE和firefox下JScript和HREF的执行顺序
2008/01/12 Javascript
JSON 学习之JSON in JavaScript详细使用说明
2010/02/23 Javascript
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
2010/04/20 Javascript
js创建对象的几种常用方式小结(推荐)
2010/10/24 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
js使用心得分享
2015/01/13 Javascript
一道JS前端闭包面试题解析
2015/12/25 Javascript
JavaScript实现弹出模态窗体并接受传值的方法
2016/02/12 Javascript
Jquery Easyui日历组件Calender使用详解(23)
2016/12/18 Javascript
Node.js五大应用性能技巧小结(必须收藏)
2017/08/09 Javascript
js数字滑动时钟的简单实现(示例讲解)
2017/08/14 Javascript
Nodejs+express+ejs简单使用实例代码
2017/09/18 NodeJs
Vue CLI3搭建的项目中路径相关问题的解决
2018/09/17 Javascript
Vue-cli4 配置 element-ui 按需引入操作
2020/09/11 Javascript
python快速查找算法应用实例
2014/09/26 Python
Python基于scapy实现修改IP发送请求的方法示例
2017/07/08 Python
解决pycharm无法识别本地site-packages的问题
2018/10/13 Python
python3发送邮件需要经过代理服务器的示例代码
2019/07/25 Python
Python基于BeautifulSoup爬取京东商品信息
2020/06/01 Python
HTML5所有标签汇总及标签意义解释
2015/03/12 HTML / CSS
墨西哥运动服饰和鞋网上商店:Netshoes墨西哥
2016/07/28 全球购物
J2EE包括哪些技术
2016/11/25 面试题
2014预备党员党课学习心得范文
2014/07/08 职场文书
《中国梦我的梦》中学生演讲稿
2014/08/20 职场文书
解除劳动关系协议书范文
2014/09/11 职场文书
机关干部四风问题自查报告及整改措施
2014/10/26 职场文书
世界遗产导游词
2015/02/13 职场文书
法院个人总结
2015/03/03 职场文书
国际最新研究在陨石中发现DNA主要成分 或由陨石带来地球
2022/04/29 数码科技