易本地工作室-Ebend Software&Network Studio - 群发,采集,管理类软件定制开发服务【易本地工作室】
本工作室提供信息采集,管理,群发类软件定制服务,6年软件定制经验!

通过VBS脚本批量获取LRC歌词

脚本语言:VBS

原创作者:易本地工作室 艾云超

官方网站:易本地工作室

授权状态:免费

功能说明:通过VBS的WINSOCKET组件批量获取QQ音乐接口里的LRC歌词文件,仅供学习之用。建议不要直接运行,请在命令行中输入cscript.exe GerLrc.vbs 的命令运行该脚本

脚本下载:GetLrc.rar


on error resume next   
Public WinSocket,host,port,checkpage   
public sSendData   
public sRevData   
public sRevState   
public M,N   
public Id   
Dim objfso   
Public sPath   
host ="music.qq.com"
port =80   
Set WinSocket=WScript.CreateObject("MSWinsock.Winsock")    
WinSocket.Protocol=0    
WinSocket.RemotePort=port    
WinSocket.RemoteHost=host    
Set objfso=CreateObject("scripting.filesystemobject")   
objfso.CreateFolder "e:\\LrcCache"
for Id=1 to 10000000000   
checkpage="/miniportal/static/lyric/" +cstr(Id mod 100) + "/" + cstr(Id) + ".xml"
WScript.Echo checkpage   
sPath = "e:\\LrcCache\\"+cstr(Id mod 100) + "\\" + cstr(Id) + ".xml"
objfso.CreateFolder "e:\\LrcCache\\"+cstr(Id mod 100)   
sSendData="GET "+checkpage+" HTTP/1.1"
sSendData=sSendData+ vbcrlf+"HOST:music.qq.com"
sSendData=sSendData+ vbcrlf+"Cache-Control:no-cache"
sSendData=sSendData+ vbcrlf   
sSendData=sSendData+ vbcrlf   
sSendData=sSendData+ vbcrlf+"OK"
sRevData=""
        WinSocket.connect    
        N=1   
        do while(WinSocket.state<>7 and N<500)   
                N=N+1   
                WScript.sleep 10   
        loop   
        if WinSocket.state=7 then    
            WinSocket.senddata sSendData   
            N=1   
            do while(WinSocket.BytesReceived<100 and N<500)   
                    N=N+1   
                    WScript.sleep 10   
            loop   
            if (N<500 and WinSocket.state=7) THEN   
                WinSocket.getdata sRevData,vbString   
                sRevState=left(sRevData,12)   
                if (sRevState="HTTP/1.1 200") then   
                sRevData=right(sRevData,len(sRevData)-Instr(1,sRevData,vbcrlf+vbcrlf)-1)   
                WScript.Echo sRevData   
                    if Trim(sRevData)<>"" Then
                        WScript.Echo "Save As..."&sPath   
                        Set f=objfso.OpenTextFile(sPath,2,True)    
                        f.WriteLine sRevData   
                        f.Close   
                    end if   
                else   
                WScript.Echo sRevState   
                end if   
            else   
                WScript.Echo "Respond Time out!"
            end if     
        else       
            WScript.Echo "Connect Time out!"
        end if   
        WinSocket.close    
        'WScript.sleep 100   
next

以下是该通过该脚本获取到的LRC源文件

<?xml version="1.0" encoding="gb2312" ?><lyric><![CDATA[[ti:新台币是一尾鱼]   
[ar:BABOO乐团]   
[al:新台币]   
[offset:-3498]   
[00:26.94]新台币是一尾鱼 滑啊溜溜 又搁真会泅   
[00:42.38]新台币是一尾鱼 看耶到 不过吃不到   
[00:50.07]常常值耶你耶面头前   
[00:53.94]泅来泅去哎哟泅来泅去   
[00:57.69]泅来泅去 泅来泅去   
[00:60.00]抓不到 盖冤枉喔   
[01:19.08]新台币是一尾鱼 有人嫌臭臊 有人是兴趣趣   
[01:25.67](Swood 啊 Swood 啊 Swood Swood Swood 夭鬼囝仔流口水)   
[01:30.72](Swood 啊 Swood 啊 Swood Swood Swood 夭鬼囝仔流口水)   
[01:34.66]新台币是一尾鱼 罕哩来咱这行一下 常拢嘛去彼那儿坐归哺   
[01:50.10]亲像住着隔壁耶王先生   
[01:53.79]他三不五时哎哟一年透天   
[01:57.60]三不五时一年透天 三不五时一年透天   
[02:00.85]大尾鱼是满厝间喔   
[02:37.35]新台币是一尾鱼 滑啊溜溜 又搁真会泅   
[02:43.85](泅啊泅啊泅泅泅 不知马泅对倒位去)   
[02:48.91](泅啊泅啊泅泅泅 不知马泅对倒位去)   
[03:00.19]喂少年耶你未曾彼落碰过水   
[03:04.43]头一拜着想马去钓啊大鱼   
[03:08.25](憨啊憨啊憨囝仔你跌落水底是冷吱吱)   
[03:12.14](憨啊憨啊憨囝仔你跌落水底是冷吱吱)   
[03:23.70]新台币是愈来愈大尾 饲 Ga 肥滋滋又搁活跳跳   
[03:30.41]害咱对面彼咧洪同志   
[03:35.40]他日时仔想啊暝时嘛想   
[03:38.28]日啊想喔暝嘛想喔 日啊想喔暝嘛想喔   
[03:42.40]嘴开开 要活活吞落去 他口水 Co Co 滴   
[03:50.84]泅啊泅啊泅泅泅 不知马泅对倒位去   
[03:59.57]新台币是一尾鱼   
]]></lyric>
标签:VBSWINSOCKETLRC
分类:源码教程| 发布:adobo| 查看: | 发表时间:2012/11/15
原创文章如转载,请注明:转载自易本地工作室-Ebend Software&Network Studio http://www.ebend.net/
本文链接:http://www.ebend.net/post/GetLrcWithVBS.html

已经有 ( 0 ) 位网友发表了评论,你也评一评吧!