网络编程 
首页 > 网络编程 > 浏览文章

用XMLHTTP很好的一个例子

(编辑:jimmy 日期: 2024/11/8 浏览:3 次 )
进入www.ting88.com的网站,把歌手专辑页面的URL复制到文本框中再提交就可以得到歌曲的下载路径,如:http://www.ting88.com/MusicList/4141.htm 

源程序如下: 

<% 
on error resume next 
dim id,url,getCode,m,i,j,s,d,ns,nd,num,name 
id=trim(request.querystring("id")) 
'1.获取原网页所有内容 
Function getHTTPPage(url) 
dim http 
set http=Server.createobject("Microsoft.XMLHTTP") 
Http.open "GET",url,false 
Http.send() 
if Http.readystate<>4 then 
exit function 
end if 
getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312") 
set http=nothing 
if err.number<>0 then err.Clear 
End function 

'2.编码转换 
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 

'得到明码URL 
function MyReplace(ConvStr) 
ConvStr=replace(ConvStr,"YVI","1") 
ConvStr=replace(ConvStr,"ESR","2") 
ConvStr=replace(ConvStr,"SXN","3") 
ConvStr=replace(ConvStr,"STI","4") 
ConvStr=replace(ConvStr,"WFU","5") 
ConvStr=replace(ConvStr,"LQU","6") 
ConvStr=replace(ConvStr,"QGI","7") 
ConvStr=replace(ConvStr,"BLA","8") 
ConvStr=replace(ConvStr,"JFU","9") 
ConvStr=replace(ConvStr,"LSN","0") 
ConvStr=replace(ConvStr,"XPG","/") 
ConvStr=replace(ConvStr,"XQD",".") 
ConvStr=replace(ConvStr," ","") 
ConvStr=replace(ConvStr,"%20","") 
ConvStr=replace(ConvStr,"KWD","Wma") 
MyReplace=ConvStr 
end function 

if id="1" then 
url=trim(request.form("txturl")) 
if url="" then 
response.redirect("GetMusic.asp") 
response.end() 
end if 
'url="http://www.ting88.com/MusicList/1454.htm" 
s=0 
d=0 
ns=0 
nd=0 
getCode=getHTTPPage(url) 
num=mid(getCode,instrrev(getCode,".<a href")-3,2) '获取歌曲的数目 
name=mid(getCode,instr(getCode,"歌手姓名:")+5,10) '获取歌手 
m="http://218.75.78.189/33445566/" 
response.write "<center>该面页共找到 " & name & "的 <font color=red>" & num& "</font> 首歌曲" & "<br/><br/>" 
response.write "<table width='80%' border='1' bordercolor='#A4C8FF' cellpadding='0' cellspacing='0'><tr><td>页面URL:<a href='" & url & "' target='_blank'>" & url & "</a></td></tr></table><hr width='80%'>" 
response.write "<table width='80%' border='0' cellpadding='0' cellspacing='0' bgcolor='#A4C8FF'><tr><td><table border='0' width='100%' cellpadding='2' cellspacing='1'><tr><td align=center bgcolor='#FFFFFF'>序号</td><td align=center bgcolor='#FFFFFF'>歌名</td><td align=center bgcolor='#FFFFFF'>操作</td></tr>" 
for i=1 to num 
s=instr(i+s,getCode,"checked"" value='") 
d=instr(i+d,getCode,"KWD'>") 
ns=instr(i+ns,getCode,"word=") 
nd=instr(i+nd,getCode,"&inc=") 
response.write " <tr><td align=center bgcolor='#FFFFFF'>" & i & "</td><td bgcolor='#FFFFFF'> <a href='" & m & MyReplace(mid(getCode,s+16,d-s-13)) & "'>" & mid(getCode,ns+5,nd-ns-5) & "</a><br/></td><td align=center bgcolor='#FFFFFF'><a href='" & m & MyReplace(mid(getCode,s+16,d-s-13)) & "'>下载</a></td></tr>" 
next 
response.write "</table></td></tr></table></center>" 
end if 


%> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<title>获取专辑歌曲的URL地址</title> 
</head> 
<body> 
<form name="form1" method="post" action="GetMusic.asp?id=1"> 
<table width='80%' border='0' align="center" cellpadding='0' cellspacing='0' bgcolor='#A4C8FF'> 
<tr><td><table width="100%" border="0" align="center" cellpadding="2" cellspacing="1"> 
<tr> 
<td height="30">获取专辑歌曲的URL地址</td> 
</tr> 
<tr> 
<td height="30" bgcolor="#FFFFFF">网页地址: 
<input name="txturl" type="text" id="txturl" size="80" maxlength="100"></td> 
</tr> 
<tr> 
<td height="30" bgcolor="#FFFFFF"> <input type="submit" name="Submit" value="提 交" style="width:60"> 
<input name="Reset" type="reset" id="Reset" value="重 置" style="width:60"></td> 
</tr> 
</table></td></tr></table> 
</form> 
</body> 
</html> 
上一篇:采集原理---采集技术篇---XMLHTTP
下一篇:XMLHTTP抓取远程数据的后期处理