提取网页内的mp3地址
有些网页对真实的mp3地址进行了防盗链处理,造成无法直接查看源文件来获取真实的物理地址。有时他会将地址保存在%USERPROFILE%\Administrator\Local Settings\Temporary Internet Files 目录下面为html文件,其中就包含了其真实的地址,有时在一个网页内有多个mp3地址,也就会有多个html文件,如果手工一个一个处理相当麻烦,下面用 bat+vbs 来提取,其实用findstr也可以。更简单!
bat code:
<br />@echo off<br />REM code by woyigui<br />REM dir命令后的htm文件随意修改<br />for /f "tokens=*" %%i in ('dir /s /b ^"C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files\MusicUrl*.htm^"') do type "%%i" >> d:\mp3plist.txt && echo. >>d:\mp3plist.txt<br />cscript mp3-url.vbs d:\mp3plist.txt
vbs code:
Dim p,s,re<br />If Wscript.Arguments.Count=0 Then<br />Msgbox "请把网页拖到本程序的图标上!",,"提示"<br />Wscript.Quit<br />End If<br />For i= 0 to Wscript.Arguments.Count - 1<br />p=Wscript.Arguments(i)<br />With CreateObject("Adodb.Stream")<br />.Type=2<br />.Charset="GB2312"<br />.Open<br />.LoadFromFile=p<br />s=.ReadText<br />Set re =New RegExp<br />re.Pattern= "(http://.*.mp3)"<br />re.Global = True<br />If Not re.Test(s) Then<br />Msgbox "该网页文件中未出现网址!",,"提示"<br />Wscript.Quit<br />End If<br />Set Matches = re.Execute(s)<br />s=""<br />For Each Match In Matches<br />s=s & Match.Value & vbCrlf<br />Next<br />re.Pattern= "&\w+;?|\W{5,}"<br />s=re.Replace(s,"")<br />.Position=0<br />.setEOS<br />.WriteText s<br />.SaveToFile p,2<br />.Close<br />End With<br />Next
其中的vbs略加修改,可用于很多需求。最后的结果在:d:\mp3plist.txt 文件中。
转载请注明:woyigui's blog [http://www.woyigui.cn/]
本文标题:提取网页内的mp3地址
本文地址:http://www.woyigui.cn/2009/02/11/bat-vbs-mp3plist/
恩,不错,不错。
[回复]
貌似还是打不开有的防盗链网站比如这个 http://www.cnwq.net/play1/19505.html 这个网站我搞了很久了都找不到方法搞定他,不知道你能帮我搞定不。。。如果能就联系下我吧,QQ:149305927 不胜感激~
[回复]
不错,不错,多谢共享!!
[回复]