打开迅雷top歌曲50批量下载网页,点击下载资源,下载选中连接是怎么作的?
打开源文件看到如下代码:
<a href="#" onClick="batchDownload();return false;">下载资源</a>
望高手指教!!!急急急!!给点思路也给分。
打开源文件看到如下代码:
<a href="#" onClick="batchDownload();return false;">下载资源</a>
望高手指教!!!急急急!!给点思路也给分。
解决方案 »
- struts2拦截器实现登陆验证问题
- 新手问题,JSP+bean通不过编译,不知错在何处!
- 页面中嵌入的播放器 如果媒体文件不存在 怎么把原有的文件替换成一个已存在的文件 分不够可以随便+
- 关于servlet文件上传的问题
- 如何使用client端的java程序读取servlet容器上的session等对象
- 连接转移后request里的内容是否还保存?
- 怎么向数据库的一张表插入上万条不重复的随机数呢?
- 大侠请看:从一个文本文件中逐行(大约三万行)取出数据,然后做一些去空格的操作等,然后将此行插入数据库中。但是程序只能插入到3000多
- import javax.servlet.ServletException;找不到这个包?请问是怎么回事?
- String强制转换date
- JSP 里面这样判断从数据库取的值为空值
- 高手帮忙看看这段程序那里错了,谢谢了!
http://blog.xunlei.com/web/category.html?uin=popularmusic&category_id=10
它的实现是跟迅雷的调用有关的,迅雷可以用Thune:... 这样的地址来引用资源,从而调用迅雷软件下载。所以 JavaScript 处理的就是跟迅雷打交道,假如你有自己的客户端,你也可以用JS指引浏览器调用客户端。
代码地址是http://blog.xunlei.com/js/category.js
它里面调用了Thunder.batchDownload(selected, top.location.href);
Thunder.download(data.cid, data.url, data.refer, data.res_name.revert(), top.location.href);
这样的方法,这方法应该就是调用迅雷下载的
function batchDownload(){
var selected = [];
resources.each(function(eachRes){
if(eachRes.checked)
selected.push({cid:eachRes.cid, url:eachRes.url, refer:eachRes.refer, name:eachRes.res_name.revert()});
});
if(selected.empty()){
alert("没有资源选中");
return;
}
try{
Thunder.batchDownload(selected, top.location.href);
return false;
}catch(e){}
return true;
}function onClick(index, leftMouse){
var data = resources[index];
if(!leftMouse){
Thunder.setParameter(data.cid, data.url, data.refer, location.href);
return true;
}
if(data.from_copartner && data.from_copartner.toLowerCase() == "true"){
window.open(data.refer);
return false;
}
try{
Thunder.download(data.cid, data.url, data.refer, data.res_name.revert(), top.location.href);
return false;
}catch(e){}
return true;
}
Thunder.batchDownload(selected, top.location.href);
这个是批量下载的,里面的selected是个数组,存在里面的数值形式就是data.cid, data.url, data.refer, data.res_name.revert(), Thunder.download(data.cid, data.url, data.refer, data.res_name.revert(), top.location.href);
这个就是下载单个文件的,好好研究一下上面的代码,应该不会很难的
<%
dim wz
wz=request.form("url")
if trim(wz)<>"" then
response.write"采集真实地址如下: (<A href='xunleiurl.asp'><STRONG>返回继续转换</STRONG></A>)<br>"
wz = replace(wz,VBCRLF,"")'转换回车为空
wz = replace(wz," ","")'转换空格为空
wz=split(wz,"http://wstatic.xunlei.com/web/content.htm?cid=")
for i=1 to ubound(wz)
iParentDir = Dec(left(wz(i),2))
iChildDir = Dec(mid(wz(i),3,2))
Url="http://rstatic.xunlei.com/resource_data/"&iParentDir&"/"&iChildDir&"/"&wz(i)&".htm"
response.write url&"<br>"
next%>
<%else%>
<form name="form1" method="post" action="">
请输入列表地址:<br>
<textarea name="url" cols="100" rows="20" id="url"></textarea>
<br><br>
<input type="submit" name="Submit" value="转 换">
</form> <br>一行一个,格式如下:<br>
http://wstatic.xunlei.com/web/content.htm?cid=800110EB1886866CB11EF314B5DFB7DCB91AE5CA<br>
http://wstatic.xunlei.com/web/content.htm?cid=ACC4D0660AE297A3A62FD3720B330296B57E64B7
<%end if%>
<%
Public Function Dec(Hex)
Dim i
Dim B
For i = 1 To Len(Hex)
Select Case Mid(Hex, Len(Hex) - i + 1, 1)
Case "0": B = B + 16 ^ (i - 1) * 0
Case "1": B = B + 16 ^ (i - 1) * 1
Case "2": B = B + 16 ^ (i - 1) * 2
Case "3": B = B + 16 ^ (i - 1) * 3
Case "4": B = B + 16 ^ (i - 1) * 4
Case "5": B = B + 16 ^ (i - 1) * 5
Case "6": B = B + 16 ^ (i - 1) * 6
Case "7": B = B + 16 ^ (i - 1) * 7
Case "8": B = B + 16 ^ (i - 1) * 8
Case "9": B = B + 16 ^ (i - 1) * 9
Case "A": B = B + 16 ^ (i - 1) * 10
Case "B": B = B + 16 ^ (i - 1) * 11
Case "C": B = B + 16 ^ (i - 1) * 12
Case "D": B = B + 16 ^ (i - 1) * 13
Case "E": B = B + 16 ^ (i - 1) * 14
Case "F": B = B + 16 ^ (i - 1) * 15
End Select
Next
Dec = B
End Function
%>