主页 > 知识库 > Asp 使用 Microsoft.XMLHTTP 抓取网页内容并过滤需要的

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

热门标签:银行业务 Linux服务器 电子围栏 服务器配置 团购网站 阿里云 科大讯飞语音识别系统 Mysql连接数设置
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
%>

效果图如下: 
 
您可能感兴趣的文章:
  • 用asp+xmlhttp编写web采集程序
  • asp.net HttpWebRequest自动识别网页编码
  • Asp.net XMLHTTP封装类(GET,Post发送和接收数据)
  • 运行asp.net时出现 http错误404-文件或目录未找到
  • Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
  • asp.net利用HttpModule实现防sql注入
  • asp.net 模拟提交有文件上传的表单(通过http模拟上传文件)
  • asp页面提示Response 对象 错误 ASP 0156 : 80004005 HTTP 头错误
  • Asp WinHttp.WinHttpRequest.5.1 对象使用详解 伪造 HTTP 头信息
  • asp中利用xmlhttp抓取网页内容的代码
  • asp中使用MSXML2.ServerXMLHTTP实现异步请求例子
  • 解决ASP中http状态跳转返回错误页的问题

标签:衢州 蚌埠 大理 枣庄 江苏 广元 萍乡 衡水

巨人网络通讯声明:本文标题《Asp 使用 Microsoft.XMLHTTP 抓取网页内容并过滤需要的》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266