Asp 使用 Microsoft.XMLHTTP 抓取网页内容并过滤需要的

Asp 使用 Microsoft.XMLHTTP 抓取网页内容(没用乱码),并过滤需要的内容

示例源码:

复制代码 代码如下:

<%

Dim xmlUrl,http,strHTML,strBody

xmlUrl = Request.QueryString("u")

REM 异步读取XML源

Set http = server.CreateObject("Microsoft.XMLHTTP")

http.Open "POST",xmlUrl,false

http.setrequestheader "User-Agent", "Mozilla/4.0"

http.setrequestheader "Connection", "Keep-Alive"

http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

http.Send()

strHTML = BytesToBstr(http.ResponseBody)

set http = nothing

REM 抓取主要内容

strBody = GetBody(strHTML,"<div id=""Div_newsContentc"" class=""cnt"">","</div>",0,0)

strBody =Replace(strBody,"(本文首发于","")

strBody =Replace(strBody,"财富动力网</a>,转载请注明出处。)","")

strBody =Replace(strBody,"本文首发于,转载请注明出处。)","")

strBody =Replace(strBody,"财富动力网</a>:http://www.927953.com","")

strBody =Replace(strBody,"本文首发于","")

Response.Write RegRemoveHref(strBody)

REM 获取对应网址响应的HTML

Function BytesToBstr(body)

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 = "UTF-8"

'转换原来默认的UTF-8编码转换成GB2312编码,否则直接用

'XMLHTTP调用有中文字符的网页得到的将是乱码

BytesToBstr = objstream.ReadText

objstream.Close

set objstream = nothing

End Function

REM 使用正则表达式,抓取之内标记的内容

Function GetBody(ConStr,StartStr,OverStr,IncluL,IncluR)

If ConStr="$False$" or ConStr="" or IsNull(ConStr)=True Or StartStr="" or IsNull(StartStr)=True Or OverStr="" or IsNull(OverStr)=True Then

GetBody="$False$"

Exit Function

End If

Dim ConStrTemp

Dim Start,Over

ConStrTemp=Lcase(ConStr)

StartStr=Lcase(StartStr)

OverStr=Lcase(OverStr)

Start = InStrB(1, ConStrTemp, StartStr, vbBinaryCompare)

If Start<=0 then

GetBody="$False$"

Exit Function

Else

If IncluL=False Then

Start=Start+LenB(StartStr)

End If

End If

Over=InStrB(Start,ConStrTemp,OverStr,vbBinaryCompare)

If Over<=0 Or Over<=Start then

GetBody="$False$"

Exit Function

Else

If IncluR=True Then

Over=Over+LenB(OverStr)

End If

End If

GetBody=MidB(ConStr,Start,Over-Start)

End Function

REM 过滤a超链接

Function RegRemoveHref(HTMLstr)

Set ra = New RegExp

ra.IgnoreCase = True

ra.Global = True

ra.Pattern = "<a[^>]+>(.+?)<\/a>"

RegRemoveHref = Replace(ra.replace(HTMLstr,"$1"),"href=""http://www.927953.com""","")

END Function

%>

效果图如下:

时间: 2024-08-28 15:25:53

Asp 使用 Microsoft.XMLHTTP 抓取网页内容并过滤需要的的相关文章

Asp 使用 Microsoft.XMLHTTP 抓取网页内容并过滤需要的_应用技巧

Asp 使用 Microsoft.XMLHTTP 抓取网页内容(没用乱码),并过滤需要的内容 示例源码: 复制代码 代码如下: <% Dim xmlUrl,http,strHTML,strBody xmlUrl = Request.QueryString("u") REM 异步读取XML源 Set http = server.CreateObject("Microsoft.XMLHTTP") http.Open "POST",xmlUrl,

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℃ " 干干净净的了.记录一下. 复制代码 代码如下:

asp 利用 xmlhttp 抓取网页内容

xml|网页 xmlhttp抓取网页,最近在博客园里看到了这篇文章,于是就顺便贴到blog上,原url:http://www.cnblogs.com/hover/archive/2004/10/09/36212.aspx     (博客园-翱翔.Net Blog) 抓取网页.偶要实现实实更新天气预报.利用了XMLHTTP组件,抓取网页的指定部分.需要分件html源代码此例中的被抓取的html源代码如下<p align=left>2004年8月24日星期二:白天:晴有时多云南风3-4级:夜间:晴

xmlhttp 抓取网页内容2

抓取网页.偶要实现实实更新天气预报.利用了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℃

xmlhttp 抓取网页内容1

  <%On Error Resume NextServer.ScriptTimeOut=9999999Function getHTTPPage(Path)        t = GetBody(Path)        getHTTPPage=BytesToBstr(t,"GB2312")End function Function bytes2BSTR(vIn)strReturn = "" For j = 1 To LenB(vIn) ThisCharCod

ASP.NET抓取网页内容的实现方法

 这篇文章主要介绍了ASP.NET抓取网页内容的实现方法,涉及使用HttpWebRequest及WebResponse抓取网页内容的技巧,需要的朋友可以参考下     本文实例讲述了ASP.NET抓取网页内容的实现方法.分享给大家供大家参考.具体实现方法如下: 一.ASP.NET 使用HttpWebRequest抓取网页内容 代码如下: /// <summary>方法一:比较推荐 /// 用HttpWebRequest取得网页源码 /// 对于带BOM的网页很有效,不管是什么编码都能正确识别

ASP.NET抓取网页内容

原文:ASP.NET抓取网页内容 一.ASP.NET 使用HttpWebRequest抓取网页内容   这种方式抓取某些页面会失败 不过,有时候我们会发现,这个程序在抓取某些页面时,是获不到所需的内容的,有时候甚至返回404的错误提示页,这是什么原因呢? 其实,很多人都忽略了一个问题,那就是服务器默认的浏览器问题.有的服务器默认的浏览器是手机浏览器,那么,当我抓取这个服务器下的网页是,就相当于用手机浏览器来打开网页,而如果要抓取的目标网页没有相应的手机网页的话,就会返回意想不到的结果,有的返回4

ASP.NET抓取网页内容的实现方法_实用技巧

本文实例讲述了ASP.NET抓取网页内容的实现方法.分享给大家供大家参考.具体实现方法如下: 一.ASP.NET 使用HttpWebRequest抓取网页内容 复制代码 代码如下: /// <summary>方法一:比较推荐  /// 用HttpWebRequest取得网页源码  /// 对于带BOM的网页很有效,不管是什么编码都能正确识别  /// </summary>  /// <param name="url">网页地址" </

XMLHTTP抓取数据时乱码问题解决

xml|解决|数据|问题 内码问题.用这段代码的吧,我已经改得很精简了.'使用XMLHTTP抓取地址并进次内容处理Function GetBody(Url) Dim objXMLOn Error Resume NextSet objXML = CreateObject("Microsoft.XMLHTTP") With objXML .Open "Get", Url, False, "", "" .Send GetBody =