翱翔.Net

释放.Net的力量
posts - 74, comments - 1117, trackbacks - 4, articles - 17
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

ASP利用XMLHTTP抓取网页内容

Posted on 2004-08-24 15:05 Hover 阅读(3659) 评论(3)  编辑 收藏 网摘 所属分类: 杂七杂八
抓取网页。偶要实现实实更新天气预报。利用了XMLHTTP组件,抓取网页的指定部分。
需要分件html源代码
此例中的被抓取的html源代码如下
<p align=left>2004年8月24日星期二;白天:晴有时多云南风3—4级;夜间:晴南风3—4级;气温:最高29℃最低19℃ </p>
而程序中是从
以2004年8月24日为关键字搜索,直到</p>结速
而抓取的内容就变成了"2004年8月24日星期二;白天:晴有时多云南风3—4级;夜间:晴南风3—4级;气温:最高29℃最低19℃ "
干干净净的了。记录一下。

<%
On Error Resume Next
Server.ScriptTimeOut
=9999999
Function getHTTPPage(Path)
        t 
= GetBody(Path)
        getHTTPPage
=BytesToBstr(t,"GB2312")
End function

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

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
Function Newstring(wstr,strng)
        Newstring
=Instr(lcase(wstr),lcase(strng))
        
if Newstring<=0 then Newstring=Len(wstr)
End Function
%>

<html>

<BODY bgColor=#ffffff leftMargin=0 topMargin=0 MARGINHEIGHT=0 MARGINWIDTH=0>
<!-- 开始 -->    

<%
Dim wstr,str,url,start,over,dtime
dtime
=Year(Date)&""&Month(Date)&""&Day(Date)&"日"
url="http://www.qianhuaweb.com/"
        wstr=getHTTPPage(url)
        start
=Newstring(wstr,dtime)
        over
=Newstring(wstr,"</p>")
 body
=mid(wstr,start,over-start)

response.write 
"<MARQUEE onmouseover=this.stop(); onmouseout=this.start();>"&body&"</marquee>"


%>
<!-- 结束 -->
</body></html>

Feedback

#1楼    回复  引用    

2004-10-09 10:27 by ycc [未注册用户]
挺有用的,谢谢楼主。

#2楼    回复  引用    

2005-05-26 21:15 by f [未注册用户]
我想有个错误吧
over=Newstring(wstr,"</p>")
应为
over=Newstring(start,wstr,"</p>")

#3楼    回复  引用    

2008-07-25 18:56 by sdasd [未注册用户]
--引用--------------------------------------------------
f: 我想有个错误吧
<br>over=Newstring(wstr,&quot;&lt;/p&gt;&quot;)
<br>应为
<br>over=Newstring(start,wstr,&quot;&lt;/p&gt;&quot;)
--------------------------------------------------------
sad




标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:

相关链接: