• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP > 采集原理---采集技术篇---XMLHTTP

采集原理---采集技术篇---XMLHTTP

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了xmlhttprequest,xmlhttp,xmlhttprequest对象,xmlhttp.open,xmlhttp.responsetext等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
最近一段时间,采集很热门,从新闻小偷,到音乐小偷,到新闻采集,Flash采集,都有他的踪影,现在还有很多的人对采集都很感兴趣,为了服务大家,我也正在写一套采集程序,名字为 心意采集程序 ,现在我讲一下,采集用到的相关技术。


下面讲到的也不是很高深的XMLHTTP技术,我也是稍稍讲一下,一个采集需要用到的几块内容
如果你需要了解更多的问题,请去www.google.com 搜索 XMLHTTP 技术 你将会得到更多的帮助,如果大家有什么疑问的话,可以在论坛上回贴

下面只讲到如何在网上得到数据,并不涉及到数据处理 

第一 XMLHTTP 技术

http://www.0579.info/study/exploitation/net/58685.htm

上面那个地址,那篇文章讲的根本原理已经很详细了,但是我们一般采集的话,刚开始不太需要了解太多。只要实用就可以了,等以后不够用的时候,再去找相关文档也来得急

首先,我们需要建立一个XMLHTTP对象
微软发布的xmlhttp组件已经有很多的版本了,我知道的就有以下几种:

"MSXML2.ServerXMLHTTP.4.0"
"MSXML2.ServerXMLHTTP.3.0"
"MSXML2.ServerXMLHTTP"
"MSXML2.XMLHTTP.5.0"
"MSXML2.XMLHTTP.4.0"
"MSXML2.XMLHTTP.3.0"
"MSXML2.XMLHTTP"
"Microsoft.XMLHTTP 


以上有这么多种组件,我们当然是需要申请最高版本的对象喽,那有什么办法可以实现呢
下面我拿出一段代码,大家可以看看,他是按最高版本申请XMLHTTP对象的

Dim ArrProgId,Prog,Flag,XmlHttpCom

ArrProgId = array("MSXML2.ServerXMLHTTP.4.0", "MSXML2.ServerXMLHTTP.3.0", "MSXML2.ServerXMLHTTP", "MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP","Microsoft.XMLHTTP")

For Each Prog In arrProgId
If (IsObjInstalled(Prog) = true) Then
XmlHttpCom = Prog
Exit For
End If
Next


'// <summary>
'// Rem 检查组件是否支持 是返回 True 否返回 False
'// </summary>
Public Function IsObjInstalled(strClassString)
On Error Resume Next

'//设置初始化值

IsObjInstalled = False
Err = 0

'//测试代码

Dim xTestObj
Set xTestObj = Server.createObject(strClassString)
If 0 = Err Then IsObjInstalled = True

'//清除所申请的对象

Set xTestObj = Nothing
Err = 0
End Function 


上面那段代码就是申请到当前服务器支持的最高版本的XMLHTTP对象了

下面我们讲一下采集功能函数


'GetFileText为采集功能函数
Public Function GetFileText(url) 
on error resume next '有错误时继续执行代码
Dim http '定义变量
'Set http=Server.createobject(XmlHttpCom) '申请对象 
Set http=Server.createobject("Microsoft.XMLHTTP") '保险起见,写出一个服务器一般都支持的版本 
Http.open "GET",url,False '打开对象 用GET方式 等待服务器响应
Http.Send() '发送
If Http.readystate<>4 Then '如果服务器没反应,则退出函数
Exit Function 
End If 

GetFileText=bytes2BSTR(Http.responseBody,"GB2312") '把得到的数据流二进制文件 转化成文本字符格式 (GB2312)

Set http=Nothing '删除对象
If err.number<>0 Then err.Clear '如果有错误,清除错误
End Function


'// <summary>
'// 采用 ADODB.Stream 处理采集到的数据,把二进制的文件转成文本字符
'// </summary>
Function Bytes2bStr(vin,cSet)
Dim BytesStream,StringReturn
Set BytesStream = Server.createObject("ADODB.Stream")
BytesStream.Type = 2
BytesStream.Open
BytesStream.WriteText vin
BytesStream.Position = 0
BytesStream.CharSet = cSet
BytesStream.Position = 2
StringReturn =BytesStream.ReadText
BytesStream.close
Set BytesStream = Nothing
Bytes2bStr = StringReturn
End Function


下面我定义一个 路径变量 URL

URL = "http://ent.sina.com.cn/star/mainland/more.html";

上面是一个网址,如果我们想把上面这个地址采集下来,并显示出来的话,我们可以这样操作


URL = "http://ent.sina.com.cn/star/mainland/more.html";

Response.Write GetFileText(URL)


这样就可以采集到上面网址的内容了
是不是很简单呢

那采集到数据之后应该怎么操作呢
怎么区分数据,如果得到你想要的数据,如果把得到的数据入库呢
这是以后需要分析讲解的问题了 入库要注意的地方,用正表达式处理数据


附上 上面代码的源文件,大家可以下载下去,运行起来试试,是不是真的能采集到数据库
</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Asp 使用 Microsoft.XMLHTTP 抓取网页内容并过滤需要的
  • asp中利用xmlhttp抓取网页内容的代码
  • asp xmlhttp下载一句话
  • 服务器XMLHTTP(Server XMLHTTP in ASP)基础知识
  • XMLHttp ASP远程获取网页内容代码
  • ASP利用XMLHTTP实现表单提交以及cookies的发送的代码
  • ajax XMLHTTP Post Form时的表单乱码综合解决
  • asp下利用XMLHTTP 从其他页面获取数据的代码
  • asp中xmlhttp组件发包
  • 用asp+xmlhttp编写web采集程序

相关文章

  • 2017-05-11解决ASP(图像)上传漏洞的方法
  • 2017-05-11asp数据库连接函数
  • 2017-05-11UTF-8编码第1/2页
  • 2017-05-11asp最简单的生成验证码代码
  • 2017-05-11ASP开发中可能遇到的错误信息中文说明大全(整理收集)第1/2页
  • 2017-05-11把无限级分类生成数组
  • 2017-05-11asp 实现对SQL注入危险字符进行重编码处理的函数
  • 2017-05-11迅雷API接口_通过脚本调用迅雷自动下载资源
  • 2017-05-11不能使用“;文件已在使用中 Microsoft JET Database Engine
  • 2017-05-11文件、目录,文本文件等多种操作类

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • asp获取客户端某一个图片的x,y坐标的代码
    • ASP代码的对象化
    • 统计在线人数 dxy
    • ASP XML编程objXML.async = False第1/2页
    • ASP通用分页样式函数代码
    • ASP 程序实现自动升级功能
    • 分享一段代码show.asp?id=26变成show/?26的形式
    • ASP关于编码的几个有用的函数小结(utf8)
    • 怎样读取一个文本文件的内容?
    • 把字符串转换成数据库SQL语句格式

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有