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-09-05 07:24:56

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

C# 实现抓取网站页面内容的实例方法_实用技巧

抓取新浪网的新闻栏目,如图所示: 使用 谷歌浏览器的查看源代码: 通过分析得知,我们所要找的内容在以下两个标签之间: 复制代码 代码如下: <!-- publish_helper name='要闻-新闻' p_id='1' t_id='850' d_id='1' --> 内容.... <!-- publish_helper name='要闻-财经' p_id='30' t_id='98' d_id='1' --> 如图所示: 内容.... 使用VS建立一个如图所示的网站: 我们下载

HttpClient抓取网页的两种方式_应用技巧

一.利用NodeFilter对网页进行分析 1.生成一个Parser a.通过url提取网络上的网页 复制代码 代码如下: Parser parser = new Parser(); parser.setURL("http://www.yahoo.com.cn"); b.提取本地网页文件 通过读文件把网页文件转化成字符串: 复制代码 代码如下: Parser parser=Parser.createParser(html,charset); 2.利用NodeFilter做一个filte

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

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

ASP.NET抓取网页内容

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