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
然后我们先写一个最简单的程序来先,一步一步的来,手把手的教,(呵,废话说多了*.*)
把上面的代码命名为get.asp吧
再一个页面代码就叫getfilename.asp吧.代码如下:
<!--#include file="get.asp"-->
<%
response.write gethttppage("http://www.asp315.com/artical/2/1.htm")
%>
呵,getfilename.asp完成了,当然,这个是最简单的照搬啦,我们要一步一步的来改,来完善,
远行那个当代码,你会看到和那个页面基本上一的页面,当然,有些图片显示不了!
然后我们分析这个页面,首页,点右键,查看源代码找到这一行
<td width="40" height="20" align="center" bgcolor="#F6F6F6">人气</td>
当然,我们不要这么多,光人气二字都可以,但是为了保险,我们还是多要点,
这个是那些文件标题开始的地方,那么我们再找到结束的地方,
<td width="490" align="center">页数
呵,这些代码找到了,这个多一点少一点没事,我们代码要一步一步完善的,
然后我们将getfilename.asp改成
<!--#include file="get.asp"-->
<%
dim dj,l1,l2
dj=gethttppage("http://www.asp315.com/artical/2/1.htm")
l1=instr(dj,"<td width=""40"" height=""20"" align=""center"" bgcolor=""#F6F6F6"">人气</td>")
l2=instr(l1,dj,"<td width=""490"" align=""center"">页数")
dj1=mid(dj,l1,l2-l1)
response.write dj1
%>
再去运行这个文件,看一看,
你会发现东西少了好多,呵,也简单多了,那么,我们再找去规律来吧,一样上查看源代码,
然后你会发现每一条都是一个<tr></tr>标签组成的,这就好办多了,
djmore=split(dj1,"<tr>")
记住,仔细查看,你会发现多了几个<tr>,
那就把第一个和最后二个去掉,变成这样的了
我们来循环
把
response.write dj1换成
djmore=split(dj1,"<tr>")
for i=1 to ubound(djmore)-2
response.write djmore(i)
next
这样就会把每一行都分出来了,分成了以下这样的
<td width="474" height="20" bgcolor="#FFFFFF"><img src="../../images/article_elite.gif"> <a href="../../news/31/200572111233207984.htm" target="_blank" title="CSS语法手册(一)字体属性">CSS语法手册(一)字体属性</a></td>
<td width="80" height="20" align="center" bgcolor="#FFFFFF">2005-7-21</td>
<td width="40" height="20" align="center" bgcolor="#FFFFFF"><script src="../../showcount.asp?id=18152"></script></td>
</tr>
现在只要分析这一段就简单多了,
我们再来针对djmore(i)这数组中的一项来写一个代码,
l3=instr(djmore(i),"<a href=")
l4=instr(l3,djmore(i),""" target=""_blank""")
url=mid(djmore(i),l3,l4-l3)
response.wrie url&"<br>"
这里是为了方便才写成这样的,
把以上这段代替前面的
response.write djmore(i)
这里加<BR>是为了换行,好看点,然后你看到了URL好像多了点东西,这个我们就要做一些处理了,把
url=mid(djmore(i),l3,l4-l3)变成
url=mid(djmore(i),l3+len("<a href=")+1,l4-l3-len("<a href=")-1)
呵,没问题了,再运行时就剩下地址了,
呵,是吧,这只是每一个页的,要全部的,你只要修改一下
dj=gethttppage("http://www.asp315.com/artical/2/1.htm")改成
for ii=1 to 141
geturl="