• 宝贝是地名,你能想到这么浪漫的地名在哪儿吗? 2019-08-15
  • 何树山副省长到方圆机电调研指导工作 2019-08-15
  • 吉林体育彩票11选5走势:采集原理---采集技术篇---XMLHTTP

    来源:本网整理
    最近一段时间,采集很热门,从新闻小偷,到音乐小偷,到新闻采集,Flash采集,都有他的踪影,现在还有很多的人对采集都很感兴趣,为了服务大家,我也正在写一套采集程序,名字为 心意采集程序 ,现在我讲一下,采集用到的相关技术。


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

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

    第一 XMLHTTP 技术

    //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 = "//ent.sina.com.cn/star/mainland/more.html";

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


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

    Response.Write GetFileText(URL)


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

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


    附上 上面代码的源文件,大家可以下载下去,运行起来试试,是不是真的能采集到数据库

    彩票双色球历史开奖结果 www.s9h6.com

  • 本文相关:
  • 一搜图片搜索小偷
  • 小偷,采集程序常用函数
  • 服务器常用组件
  • 如何在不支持数据库的asp主页上运用ado
  • 做文章系统时, 如何让长篇的文章自动换行
  • Access中使用Create Procedure创建存储过程
  • Web代理(Asp版)
  • ASP中的时间函数大全 时间操作函数
  • 无组件实现文件上传/下载
  • asp网页邮箱访问
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 彩票双色球历史开奖结果 - 频道导航
    Copyright © 2017 彩票双色球历史开奖结果 www.s9h6.com All Rights Reserved
  • 宝贝是地名,你能想到这么浪漫的地名在哪儿吗? 2019-08-15
  • 何树山副省长到方圆机电调研指导工作 2019-08-15
  • 826澳门巴黎人ag网站 双色球红球过滤 上海快3追号计划 浙江快乐彩任三预测 c罗西甲总进球数 江苏快3开奖结果走势 安徽11选5彩经网 彩票软件设计 超级大乐透自动摇奖机 c罗总进球数630 北京一定牛形态 红球奇号偶号分布图 上海快3 香港赛马会心水高手论坛 边锋十三张游戏下载