欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

用XMLHTTP很好的一个例子

程序员文章站 2022-07-02 08:38:04
进入www.ting88.com的网站,把歌手专辑页面的url复制到文本框中再提交就可以得到歌曲的下载路径,如:http://www.ting88.com/musiclis...
进入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>