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.jb51.net/"
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>

(0)

相关推荐

  • asp中使用MSXML2.ServerXMLHTTP实现异步请求例子

    asp使用MSXML2.ServerXMLHTTP异步发送请求时,需要注意判断MSXML2.ServerXMLHTTP对象的readyState是否为4,如果不判断直接获取对象的属性,如responseText会出现如下错误: 复制代码 代码如下: msxml3.dll 错误 '8000000a' 完成该操作所需的数据还不可使用. /a.asp,行 18 asp使用MSXML2.ServerXMLHTTP异步发送请求源代码: 复制代码 代码如下: <% if request.QueryStrin

  • asp.net HttpWebRequest自动识别网页编码

    复制代码 代码如下: static string GetEncoding(string url) { HttpWebRequest request = null; HttpWebResponse response = null; StreamReader reader = null; try { request = (HttpWebRequest)WebRequest.Create(url); request.Timeout = 20000; request.AllowAutoRedirect

  • Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据

    复制代码 代码如下: /**//// <summary> /// 生成带CDATA的节点 /// </summary> /// <param name="xDocument">XmlDocument</param> /// <param name="elementName">元素名称</param> /// <param name="cdataValue">CDA

  • 运行asp.net时出现 http错误404-文件或目录未找到

    问题原因: 我遇到的情况,装了.NET 2.0 + IIS 升级后就出现以上问题:不确定其他原因也会不会产生类似错误.(如果有,希望大家能贴出更多的原因,方便遇到同样错误的人找到问题的根源) 解决方法: 首先,要重新注册IIS :运行cmd 后 进入"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727" 键入命令aspnet_regiis -i 其次,在: 计算机管理--Internet信息服务(IIS)管理器--Web服务扩展--ASP.NET

  • asp.net 模拟提交有文件上传的表单(通过http模拟上传文件)

    我们暂且不说如何去模拟数据,通过一个简单的form看看当请求发生时,客户端提交了什么样的数据给服务端. 下面是一个简单的html form,两个文本输入框,一个文件上传(这里我选择一张图片),注意有文件上传的form的enctype属性. 复制代码 代码如下: <form action="sql.aspx" method="post" enctype="multipart/form-data"> <input id="

  • 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编写web采集程序

    web采集程序?网页抓取程序?小倫程序?不管怎么叫,这种程序应用倒是蛮广的.本文不讨论这种使用这种程序引起的版权或道德问题,只谈这种程序在ASP+VBScript环境下的实现 :-) 预备知识:除了一般的ASP+VBScript的知识外,你还需要了解xmlhttp对象和正则表达式对象.xmlhttp对象是时下风头正劲的Ajax的主角:而学好了正则表达式,你再也不用为处理复杂的字符串犯愁. 在编写和调试正则表达式时,RegEx 这个小工具非常有用. 目录 抓取一个远程网页并保存到本地  改进:处理

  • asp.net利用HttpModule实现防sql注入

    1.新建一个类,实现IHttpModule接口 代码 复制代码 代码如下: public class SqlHttpModule : IHttpModule { public void Dispose() { } public void Init(HttpApplication context) { context.AcquireRequestState += new EventHandler(context_AcquireRequestState); } } 在实现接口的Init方法时,我们选

  • 解决ASP中http状态跳转返回错误页的问题

    IIS默认的错误页是很不友好的,很多人看到默认的错误页时都会说:网站打不开了!白白损失了这部分流量.而如果错误页直接跳转到首页又对搜索引擎很不友好,搞不好首页还会被封掉.所以根据情况,有两个方法解决这个问题: 如果是博客等内容型的网站,可以返回一个带有404错误的搜索框让访客搜索,若是电子商务型网站,则可以返回一个带有404错误的进度条进行跳转.这两种方法即照顾了访客又顾及到了SEO. 可以在Google webmaster tools中查看自己网站错误页有多少. 修改默认错误页的方法很简单:在

  • asp页面提示Response 对象 错误 ASP 0156 : 80004005 HTTP 头错误

    其实这类问题就是因为缓存问题,大家可以参考下面的方法解决: 有些ASP页面第一次打开的时候会出现Response 对象 错误 'ASP 0156 : 80004005' HTTP 头错误,但刷新后又正常了,解决方法如下 复制代码 代码如下: Response.Buffer = True '应该是这行,去掉就ok '如果还不行就把 Response.Buffer = True Response.ExpiresAbsolute = Now() - 1 Response.Expires = 0 Res

  • Asp WinHttp.WinHttpRequest.5.1 对象使用详解 伪造 HTTP 头信息

    由于微软封锁了 XmlHttp 对象,所以无法伪造部分 HTTP 头信息,但是 WinHttp.WinHttpRequest.5.1 对象,它居然用可以成功伪造所有 http 请求的 header 信息! 从msdn得知,WinHttp.WinHttpRequest.5.1 是 msxml 4.0 的底层对象,也就是说 XMLHTTP/ServerXMLHTTP 也是在它的基础上封装而来,WinHttpRequest 的用法与 XmlHttp 大致相同. WaitForResponse 在使用异

  • Asp.net XMLHTTP封装类(GET,Post发送和接收数据)

    复制代码 代码如下: /**************************************************************** * 函数名称:SendCommand(SendMethod method, ST_Param p) * 功能说明:向远程发送URL和参数,接受返回信息(无乱码); * 参 数:method:xml发送方法,POST/Get 两种 P:参数结构体 public string Url; //远程URL public string Parameter

随机推荐