   『楼 主』:
Yahoo歌曲批量下载(2008-07-05)
搜索了一下,发现百度歌曲批量下载的不少,暂没发现 雅虎 歌曲的批量下载,顺手弄了一个,时间仓促,如有不完善的,请跟帖完善或说明。
注意下载下面的Sed+wget+Bat附件,因为可能别的Sed+wget可能因为版本不一样导致无法实现其既定功能。
附件1:雅虎歌曲批量下载(Sed+wget+Bat)
若有兴趣可以和下面的整合到一起
附件2:百度歌曲批量下载
雅虎歌曲批量下载代码:
@echo off&setlocal enabledelayedexpansion
::下载歌曲后的保存路径
set DownLoadDir=D:\Music
::下载歌曲的格式
set geshi=mp3
::每首歌曲最多尝试几个下载地址
set TryUrl=5
::每个下载地址最多尝试几次
set OneTry=2
IF EXIST index0*.txt (del index0*.txt)
IF EXIST temp*.txt (del temp*.txt)
for /f "delims=" %%l in (DownLoadMusic.txt) do (
set m=0
set n=0
set MusicName=%%l
set DownName=!MusicName: =+!
call :down
del index01.txt
)
echo.
echo 全部歌曲下载完毕
pause
exit
:down
wget --output-document=index01.txt -q http://one.cn.yahoo.com/s?p=!DownName!^&v=music^&pid=hp
echo Set objFSO = CreateObject("Scripting.FileSystemObject") > MakeBOM.vbs
echo Set objFile = objFSO.CreateTextFile("Unicode.BOM",,true) >> MakeBOM.vbs
cscript //Nologo MakeBOM.vbs
reg add "HKCU\Console\%%SystemRoot%%_System32_cmd.exe" /v CodePage /t REG_DWORD /d 65001 /f >nul
start /wait /min cmd /u /c "for %%a in (index01.txt) do copy Unicode.BOM tmpfile.tmp&type "%%~fa" >> tmpfile.tmp&move /y tmpfile.tmp "temp.txt""
del index01.txt
reg add "HKCU\Console\%%SystemRoot%%_System32_cmd.exe" /v CodePage /t REG_DWORD /d 936 /f >nul
start /wait /min cmd /c "for %%a in (temp.txt) do type "%%~fa" >index01.txt"
reg delete "HKCU\Console\%%SystemRoot%%_System32_cmd.exe" /f >nul
del MakeBOM.vbs Unicode.BOM temp.txt
findstr /i /C:"对不起,没有找到与 " index01.txt>nul&&(echo 抱歉,没有找到与!MusicName!相关的内容&goto :eof)
for /f "delims=" %%a in (index01.txt) do (
set str=%%a
set str=!str:^<b^>=!
set str=!str:^</b^>=!
set str=!str:^<font =!
set str=!str:^</font^>=!
set str=!str:"#FF0000"^>=!
set str=!str:^<=,!
set str=!str:^>=,!
set str=!str:^"=,!
echo !str!>>temp01.txt
)
sed "s/color=//g" temp01.txt>>temp.txt
del temp01.txt
for /f "tokens=3,5,8,12 delims=," %%a in (temp.txt) do (
set /a n+=1
if %%d==!MusicName! (
set Url=%%b
set /a Ar=!n!+1
set /a Mo=!n!+5
set /a Si=!n!+6
)
if !n!==!Ar! (
set Artist=%%c
if "!Artist!"=="/a" (set Artist=未知歌手)
)
if !n!==!Mo! (set Mode=%%a)
if !n!==!Si! (set Size=%%a
if !Mode!==!geshi! (
wget --output-document=index02.txt -q !Url!
cd.>temp2.txt
for /f "delims=" %%i in (index02.txt) do (
set str=%%i
set str=!str:^"=,!
set str=!str:^>=,!
set str=!str:^<=,!
echo !str!>>temp2.txt
)
for /f "tokens=4,7 delims=," %%i in (temp2.txt) do (
if "%%i"=="歌曲出处: " (
wget --output-document="%DownLoadDir%\!Artist!-%MusicName%.!Mode!" --tries=%OneTry% "%%j" && (goto end)||(set /a m+=1&del "%DownLoadDir%\!Artist!-%MusicName%.!Mode!")
))))
if "%TryUrl%"=="!m!" (goto end)
)
:end
del temp2.txt index02.txt temp.txt
goto :eof DownLoadMusic.txt
听见幸福
日不落
[ Last edited by hmily88 on 2008-7-19 at 03:43 PM ]
|