| 加入收藏

采集程序设计要点 下载和保存网页

2009-06-11 20:53来源:admin5.com 浏览:[]
所属专题:

  要点1:下载网页

  采集程序下载网页方法1(XMLHTTP应用)

  用到的对象:XMLHTTP,只需三行代码,即可完成网页下载:

  第一步:创建对象

  Set ms = CreateObject("Microsoft.XMLHTTP")

  这行代码用于创建一个xmlhttp对象,其中ms为创建对象的名称,ASP编程经常用到,可以随便写,不再赘述。

  第二步:设置参数

  ms.open "GET",url,False

  其中url是要采集下载网页的网址,把它换成你的目标网页网址即可,格式为:http://www.99jpw.cn,一定要写完整,不可省略http://;

  “GET”是打开的方法,当然也可以用POST,产生的效果和HTML里的表单提交方式是一样的。

  第三步:发送数据

  ms.Send()

  此行代码用于发送数据并下载,下载后的数据储存在变量responsebody里。

  下面我们以下载“点点机票网(http://www.66666999.com)”首页为例进行一下说明

  代码:

  Set ms = CreateObject("Microsoft.XMLHTTP")

  ms.Open "GET","http://www.99jpw.cn",False

  ms.Send()

  response.write ms.responseBody

  运行以上代码大家可以发现,我们已经成功下载了http://www.66666999.com

  这里有个问题需要注意一下,有时候网址很长,直接加在第二行代码里会显得很乱,那么,我们可以用一个变量来代替一下,如下:

  url="http://www.99jpw.cn"

  Set ms = CreateObject("Microsoft.XMLHTTP")

  ms.Open "GET",url ,False

  ms.Send()

  response.write ms.responseBody

  这样以来代码就变得整齐多了。

要点2:保存采集到的网页(Stream应用)

  前面我们利用三行代码完成了对网页的下载,可是下载到的内容是乱码,在这里我们来解决乱码问题并把它保存成一个txt文件。

  创建txt文件有两种方法:一是FSO是一种常见的创建方法,但是在和xmlhttp配合使用时常会出现一些问题,这里不再详细介绍。二是运用Stream,stream是xmlhttp的最佳拍档,我们下来介绍下使用方法:

  1、 创建stream对象

  代码:Set mss = CreateObject("ADODB.Stream")

  2、 设置参数

  代码:

  mss.Mode = 3

  mss.Type = 1

  其中Mode模式,当值为1时为读取模式,2为写入模式,3为读写模式,这里我们为了操作不受限制将其设置为3;type为返回数据类型,1为Binary,2为Text,我们设置为1

  3、 打开对象

  代码:mss.open()

  4、 写入数据

  代码:mss.Write(“内容”)

  Write是Stream的一个方法,用于写入数据。

  5、 保存到文件

  mss.SaveToFile(FileName,[Options])

  Savetofile方法,此方法用于将程序采集的内容保存到文件中,其中filename为文件名,可以随便写,options为存取选项,必填,为了避免内容叠加我们设置为2。(请支持网站http://www.99jpw.cn)

  6、 关闭对象

  代码:set mss = nothing

  关闭对象,并释放内存。

  以上为保存内容的几个步骤,为了便于理解,我们举例说明:

  依然以“点点机票网http://www.66666999.com”为例:

  url="http://www.66666999.com"

  Set ms = CreateObject("Microsoft.XMLHTTP")

  ms.Open "GET",url ,False

  ms.Send()

  上以为下载网页的代码

  Set mss = CreateObject("ADODB.Stream")

  mss.Mode = 3

  mss.Type = 1

  mss.open()

  mss.Write(ms.responseBody)

  mss.SaveToFile(“1.txt”,2)

  set mss=nothing

  set ms=nothing

  运行以上代码我们可以看到,采集程序已将http://www.99jpw.cn 保存到了1.txt文件中,并且乱码问题已经解决。



Copyright 2008 逆云网 | 粤ICP备08131116号 |关于我们 | 联系我们 |