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="