中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 又一百度歌曲批量下载(2008-6-28 )
作者:
标题: 又一百度歌曲批量下载(2008-6-28 ) 上一主题 | 下一主题
hmily88
初级用户





积分 111
发帖 29
注册 2008-4-20
状态 离线
『楼 主』:  又一百度歌曲批量下载(2008-6-28 )

经过本人再次测试,可以下载,但不是所有歌曲都能下在,是需要完善,完善的任务交给大家了,我觉得后期的完善已经不是很难了,只是很烦琐。
之所以原来不可以下载,是因为偷懒没有上传wget.exe,随便在网上找了一个wget.exe的地址贴上来,可能是因为wget.exe的版本不一样,所以......


注意下载下面的wget
wget
http://upload.cn-dos.net/img/551.rar
@echo off&SetLocal ENABLEDELAYEDEXPANSION
::需要wget.exe
::下载歌曲后的保存路径
set DownLoadDir=D:\Music
::下载歌曲的格式
set geshi=mp3
::每首歌曲最多尝试几个下载地址
set TryUrl=5
::每个下载地址最多尝试几次
set OneTry=2
for /f "delims=" %%a in (DownLoadMusic.txt) do (
set m=0
set n=0
IF EXIST index.htm (del index.htm)
IF EXIST index2.htm (del index2.htm)
set MusicName=%%a
call :DownLoad
)
pause
exit
:DownLoad
wget --output-document=index.htm -q [url]http://mp3.baidu.com/m?f=ms[/url]^&tn=baidump3^&ct=134217728^&lf=^&rn=^&word=%MusicName%^&lm=0
findstr /i /C:"%MusicName%  &word=%geshi%" index.htm>nul||(echo 抱歉,没有找到与"%MusicName%"相关的%geshi%内容&goto :eof)
for /f "delims=" %%i in (index.htm) do (
set /a n+=1
set "var=%%i"
set var=!var:^&=^&!
set var=!var:^>=,!
set var=!var:^<=,!
set var=!var:^"=\!
echo "!var!"|findstr /i /C:"%MusicName%  &word=%geshi%">nul&&(
for /f "tokens=2 delims=\" %%s in ("!var!") do (
set /a get=!n!+1
set url=%%s
))
if !n!==!get! (
for /f "tokens=3 delims=," %%l in ("!var!") do (
set "singer=%%l"
if "!singer!"=="/td" (set singer=未知歌手)
if not "!singer!"=="歌词" (
wget --output-document=index2.htm -q "!url!"
for /f "delims=" %%e in (index2.htm) do (
set "var1=%%e"
set var1=!var1:^&=^&!
set var1=!var1:^>=,!
set var1=!var1:^<=,!
set var1=!var1:^"=\!
echo "!var1!"|findstr /i /C:"歌曲名:">nul&&(
for /f "tokens=2 delims=\" %%g in ("!var1!") do (
wget --output-document="%DownLoadDir%\!singer!-%MusicName%.%geshi%" --tries=%OneTry% "%%g" && (goto :eof)||(set /a m+=1)
if "%TryUrl%"=="!m!" (goto :eof)
)))))))
del index.htm index2.htm
goto :eof
DownLoadMusic.txt
忘记他
带我去月球

[ Last edited by hmily88 on 2008-7-5 at 03:49 PM ]

   此帖被 +9 点积分       点击查看详情   
评分人:【 plp626 分数: +9  时间:2008-5-29 17:49




上网时间有限,可能不能即时给你回复,抱歉!!!
2008-5-28 18:48
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jiulong
中级用户




积分 396
发帖 183
注册 2007-12-23
状态 离线
『第 2 楼』:  

无效,鉴定完毕

2008-5-29 16:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 3 楼』:  

希望楼主继续完善,9分表示离成功只差一步。。。



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-5-29 17:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 4 楼』:  

现在好像通过这种方式失效了

2008-5-29 18:19
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
hmily88
初级用户





积分 111
发帖 29
注册 2008-4-20
状态 离线
『第 5 楼』:  

经过本人再次测试,可以下载,但不是所有歌曲都能下在,是需要完善,完善的任务交给大家了,我觉得后期的完善已经不是很难了,只是很烦琐。
之所以原来不可以下载,是因为偷懒没有上传wget.exe,随便在网上找了一个wget.exe的地址贴上来,可能是因为wget.exe的版本不一样,所以......


注意下载下面的wget
wget
http://upload.cn-dos.net/img/551.rar

[ Last edited by hmily88 on 2008-6-27 at 04:49 PM ]

2008-6-27 16:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hmily88
初级用户





积分 111
发帖 29
注册 2008-4-20
状态 离线
『第 6 楼』:  

希望有人来测试一下,

2008-6-28 16:30
查看资料  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 7 楼』:  

RE:hmily88
下面的帖子对兄有参考价值(只是我总是静不下心来潜心学习)
http://www.cn-dos.net/forum/view ... mp;highlight=%2Bngd

PS:这类有关curl,wget的帖子回复率低,或不热并非帖子本身的原因,而是论坛熟练使用这两个工具的人不多,导致"曲高和寡", 我是很欣赏发此类帖子的热心者,毕竟,我们学习P大都是为了"取巧",实用是第一目的。(与我观点不同者可以保留)



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-6-29 13:19
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hmily88
初级用户





积分 111
发帖 29
注册 2008-4-20
状态 离线
『第 8 楼』:  

非常感谢plp626,刚才看了一下,确实不错,但一会还是领悟不了,还得好好研究研究,谢谢,
对了,想请教一个问题
就是如何替换文本中的=号,
比如文本中可能含有”ghost=“
想把他替换成想要的字符串,其他含有”=“号但不匹配的不做处理
不知改如何实现
看了你的回复,可能用Sed处理起来比较容易,可惜我对Sed一窍不通,感觉很复杂啊

[ Last edited by hmily88 on 2008-6-30 at 02:27 PM ]

2008-6-30 14:14
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 9 楼』:  

sed "s/ghost=/hmily88/g" a.txt

sed.exe
http://upload.cn-dos.net/img/561.zip



2008-6-30 14:29
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hmily88
初级用户





积分 111
发帖 29
注册 2008-4-20
状态 离线
『第 10 楼』:  

谢谢,HAT,看来我是得好好的学习一下了。

2008-6-30 15:01
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: