正则表达式实现视频解析

前天帮同学下载一部电视剧,但找到的bt种子速度太慢,只好放弃,于是决定下载56网的视频,只所以选择56网,是因为它的视频没有被分割,而且我可以牛刀小试一下正则表达式,利用它来批量解析下载地址。之后使用迅雷下载,甚爽。

下面这个是使用perl写的(文件名parse),适用于批量解析。可将所有需要下载视频的flash地址(例:http://www.56.com/n_v48_/c23_/8_/19_/hellowjjb_/
zhajm_120817547185x_/2725000_/0_/32802621.swf)写入一个文件(1.txt),然后运行perl -w parse 1.txt > 2.txt 即可瞬间得到下载地址。

while ($line=<>)
{
if($line=~m/^http:\/\/www.56.com[^c]*?c(\d\d?)_\/(\d\d?)_\/(\d\d?)_\/([^\/]+?)_\/([^\/]*?)_\/.*swf\b/)
{
print “http://c$1.56.com/flvdownload/$2/$3/$4\@56.com_56flv_$5.flv\n”;
}
}

这个是php版的代码:

<html>
<head>
<title>56网视频解析</title>
</head>
<body>
<h3 style=”text-align:center”>视频解析</h3>
<br />
<form method=”post” action=”#”>
<center><input type=”text” size=”60″ name=”url” />
<input type=”submit” name=”submit” value=”Submit” /></center><br />
</form>

<?php
if(isset($_POST['url'])&&isset($_POST['submit']))
{
$url=$_POST['url'];
$pattern=’/^http:\/\/www.56.com[^c]*?c(\d\d?)_\/(\d\d?)_\/(\d\d?)_\/([^\/]+?)_\/([^\/]*?)_\/.*swf\b/’;
if(preg_match($pattern,$url,$matches))
{
$download=”http://c$matches[1].56.com/flvdownload/$matches[2]/$matches[3]/$matches[4]@56.com_56flv_$matches[5].flv”;
}
else
{
$download=”sorry,can not parse download address!”;
}
echo “下载地址是:<br />$download”;
}
?>
</body>
</html>

效果请看 这里.

Related

Comments (2)

疾风December 9th, 2009 at 12:51 am

沙发啊 呵呵

[Reply]

 tom   Reply:

我这里很少人来的,沙发很便宜,呵呵!

[Reply]

Leave a comment

Your comment