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

最近一段时间,采集很热门,从新闻小偷,到音乐小偷,到新闻采集,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)

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

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

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

(0)

相关推荐

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

    最近一段时间,采集很热门,从新闻小偷,到音乐小偷,到新闻采集,Flash采集,都有他的踪影,现在还有很多的人对采集都很感兴趣,为了服务大家,我也正在写一套采集程序,名字为 心意采集程序 ,现在我讲一下,采集用到的相关技术. 下面讲到的也不是很高深的XMLHTTP技术,我也是稍稍讲一下,一个采集需要用到的几块内容 如果你需要了解更多的问题,请去www.google.com 搜索 XMLHTTP 技术 你将会得到更多的帮助,如果大家有什么疑问的话,可以在论坛上回贴 下面只讲到如何在网上得到数据,并不

  • asp采集HTML内容常用代码,详讲正则采集

    先说一下采集原理: 采集程序的主要步骤如下: 一.获取被采集的页面的内容 二.从获取代码中提取所有用的数据 一.获取被采集的页面的内容 我目前所掌握的ASP常用获取被采集的页面的内容方法: 1.用serverXMLHTTP组件获取数据 复制代码 代码如下: Function GetBody(weburl) '创建对象 Dim ObjXMLHTTP Set ObjXMLHTTP=Server.CreateObject("MSXML2.serverXMLHTTP") '请求文件,以异步形式

  • asp 采集程序常用函数分析

    原理 采集程序实际上是通过了XML中的XMLHTTP组件调用其它网站上的网页.比如新闻采集程序,很多都是调用了sina的新闻网页,并且对其中的html进行了一些替换,同时对广告也进行了过滤.用采集程序的优点有:无须维护网站,因为采集程序中的数据来自其他网站,它将随着该网站的更新而更新:可以节省服务器资源,一般采集程序就几个文件,所有网页内容都是来自其他网站.缺点有:不稳定,如果目标网站出错,程序也会出错,而且,如果目标网站进行升级维护,那么采集程序也要进行相应修改:速度,因为是远程调用,速度和在

  • asp 采集实战代码

    最近实在是太流行采集了,本人是不喜欢采集的,但对采集的原理我却很有兴趣进行研究,拿到了网上采集常用函数,对其进行了一番研究,并实战,结果成功,撇开效率问题,采集原理并不复杂,大家可以在搜索吧输入"采集"查看其原理.下面是一个采集的例子: 复制代码 代码如下: <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <% Response.CodePage=65001%>  <% Respo

  • 非常好的网站生成静态页面防采集策略与方法

    目前防采集的方法有很多种,先介绍一下常见防采集策略方法和它的弊端及采集对策:  一.判断一个IP在一定时间内对本站页面的访问次数,如果明显超过了正常人浏览速度,就拒绝此IP访问 弊端:     1.此方法只适用于动态页面,如:asp\jsp\php等...静态页面无法判断某个IP一定时间访问本站页面的次数.     2.此方法会严重影响搜索引擎蜘蛛对其收录,因为搜索引擎蜘蛛收录时,浏览速度都会比较快而且是多线程.此方法也会拒绝搜索引擎蜘蛛收录站内文件     采集对策:只能放慢采集速度,或者不采

  • 网站生成静态页面攻略4:防采集而不防搜索引擎策略

    从前面的我讲的采集原理大家可以看出,绝大多数采集程序都是靠分析规则来进行采集的,如分析分页文件名规则.分析页面代码规则.     一.分页文件名规则防采集对策     大部分采集器都是靠分析分页文件名规则,进行批量.多页采集的.如果别人找不出你的分页文件的文件名规则,那么别人就无法对你的网站进行批量多页采集.     实现方法:     我认为用MD5加密分页文件名是一个比较好的方法,说到这里,有人会说,你用MD5加密分页文件名,别人根据此规则也可以模拟你的加密规则得到你的分页文件名.     

  • 自己做采集程序

    现在网上的采集程序很多,但是有时候你发现一个好的网站,想自己做个采集工具采集一些信息,就需要自己去写程序了,其实这样的采集程序并不难写,主要是去分析源网站的网页结构.首先去下载个XMLHTTP的类文件:<%Class xhttpprivate cset,sUrl,sErrorPrivate Sub Class_Initialize()'cset="UTF-8"cset="GB2312"sError=""end sub Private Sub

  • 零基础学习iOS直播之采集

    直播的采集由采集的设备(摄像头.话筒)不同分为视频采集和音频采集,本篇文章会分别介绍. 1.采集步骤 创建捕捉会话(AVCaptureSession),iOS调用相机和话筒之前都需要创建捕捉对话,把输入输出设备添加进对话中. 往会话中添加视频输入对象(AVCaptureDeviceInput). 往会话中添加音频输入对象(AVCaptureDeviceInput). 往会话中添加视频输出对象(AVCaptureVideoDataOutput). 往会话中添加音频输出对象(AVCaptureAud

  • 关关小说采集器[杰奇]采集出错的修正方法

    最近突然喜欢上了小说站,呵呵,用关关小说采集器采集了一下,感觉不错! 但是在 采集 内容是图片 的小说时,出现错误,如下提示: #HY000Incorrect integer value: ' null ' for column ' attachid ' at row 1 的错误! 经过寻找发现修改办法是如下图:修改即可

  • 20070910更新的火车采集器3.2正式版发布下载

    火车头团队一直致力于为广大网站站点提供数据信息和实用的工具软件, 开发团队秉承"专业,专注,沉着,创新"的理念,用实力铸造精品. 经过2007年3月至2007年9月,近5个多个月的研发及几个版本的内部测试,一个具有全新内核和架构的强大信息采集,数据加工软件--火车采集器3.2版 呈献在大家面前,为始终支持和关爱火车软件发展的站长们献上一份谢礼. 火车采集器1.X-3.X一直免费使用并深受广大站长欢迎,通过大家对3.2测试版的反馈,无论在性能,功能和稳定性上面3.2都是以前版本无法比拟的

随机推荐