首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > ASP >

远路抓取过来的数据进行循环控制

2013-07-16 
远程抓取过来的数据进行循环控制trtd width4%·/tdtd width83%ahrefview.asp?Code21541

远程抓取过来的数据进行循环控制



                <tr>
                    <td width="4%">·</td>
                    <td width="83%">
                    <a  href="view.asp?Code=21541">[问题]测试测试测试</a>--
                    </td>
                    <td width="11%">2013-07-08</td>
                    <td width="2%">&nbsp;</td>
                  </tr>
                
                <tr>
                    <td width="4%">·</td>
                    <td width="83%">
                    <a  href="view.asp?Code=21541">[问题]测试测试测试</a>--
                    </td>
                    <td width="11%">2013-07-08</td>
                    <td width="2%">&nbsp;</td>
                  </tr>

  <tr>
                    <td width="4%">·</td>
                    <td width="83%">
                    <a  href="view.asp?Code=21541">[问题]测试测试测试</a>--


                    </td>
                    <td width="11%">2013-07-08</td>
                    <td width="2%">&nbsp;</td>
                  </tr>

  <tr>
                    <td width="4%">·</td>
                    <td width="83%">
                    <a  href="view.asp?Code=21541">[问题]测试测试测试</a>--
                    </td>
                    <td width="11%">2013-07-08</td>
                    <td width="2%">&nbsp;</td>
                  </tr>

  <tr>
                    <td width="4%">·</td>
                    <td width="83%">
                    <a  href="view.asp?Code=21541">[问题]测试测试测试</a>--
                    </td>
                    <td width="11%">2013-07-08</td>
                    <td width="2%">&nbsp;</td>
                  </tr>

  <tr>
                    <td width="4%">·</td>


                    <td width="83%">
                    <a  href="view.asp?Code=21541">[问题]测试测试测试</a>--
                    </td>
                    <td width="11%">2013-07-08</td>
                    <td width="2%">&nbsp;</td>
                  </tr>

  <tr>
                    <td width="4%">·</td>
                    <td width="83%">
                    <a  href="view.asp?Code=21541">[问题]测试测试测试</a>--
                    </td>
                    <td width="11%">2013-07-08</td>
                    <td width="2%">&nbsp;</td>
                  </tr>

  <tr>
                    <td width="4%">·</td>
                    <td width="83%">
                    <a  href="view.asp?Code=21541">[问题]测试测试测试</a>--
                    </td>
                    <td width="11%">2013-07-08</td>
                    <td width="2%">&nbsp;</td>


                  </tr>



将以上抓取过来的数据进行循环可以控制数量
[解决办法]
on error resume next 
server.scripttimeout=9999999 
function gethttppage(path) 
t = getbody(path) 
gethttppage=bytestobstr(t,"gb2312") 
end function 

’首先,进行小偷程式的一些初始化设置,以上代码的作用分别是忽略掉所有非致命性错误,把小偷程式的运行超时时间设置得非常长(这样不会出现运行超时的错误),转换原来默认的utf-8编码转换成gb2312编码,否则直接用xmlhttp组件调用有中文字符的网页得到的将是乱码。 

function getbody(url) 
on error resume next 
set retrieval = createobject("microsoft.xmlhttp") 
with retrieval 
.open "get", url, false, "", "" 
.send 
getbody = .responsebody 
end with 
set retrieval = nothing 
end function 

’然后调用xmlhttp组件创建一个对象并进行初始化设置。 

function bytestobstr(body,cset) 
dim objstream 
set objstream = server.createobject("adodb.stream") 
objstream.type = 1 
objstream.mode =3 
objstream.open 
objstream.write body 
objstream.position = 0 
objstream.type = 2 
objstream.charset = cset 
bytestobstr = objstream.readtext 
objstream.close 
set objstream = nothing 
end function
wstr=getHTTPPage("http://www.baidu.com")
 
最后只要把获取的内容,wstr 用正则匹配成数组就OK了
正则匹配我大略写一个如下:
Set regEx = New RegExp '建立正则表达式。   
regEx.Pattern = "<td width=""83%"">(.*?)<\/td><td width="11%">(.*?)<\/td>" '设置模式。   
regEx.IgnoreCase = True '设置是否区分字符大小写。   
regEx.Global = True '设置全局可用性。   
Set Matches = regEx.Execute(wstr) '执行搜索。   
For Each Match in Matches '遍历匹配集合。   
'输出匹配内容   
Response.Write Match.SubMatches(0)&"."&Match.SubMatches(1)&"<br>"   


Next

  
这样就是抓取远程数据过来了,并且匹配了,自己调试一下正则吧,记得要编码不一致要转换一致哦

热点排行