asp中利用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.glzy8.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>