最近看新浪的播客,有时候网速快时,很方便就可以看了,但有的时候网速慢或者想下载一些回头再看时,就不太方便了,经过一番研究,终于找到了下载的方法,希望能够帮助有同样烦恼的你。
要得到具体某播客所有节目的方法如下:
1.得到某人的uid
如郑渊洁:1195031270
(注:这个uid可以通过地址栏得到,如某人的播客地址是http://v.blog.sina.com.cn/m/1195031270,那么他的uid就是1195031270。)
2.在地址栏中访问http://v.blog.sina.com.cn/ajax.php?dos=user&act=m&cid=0&page=13&uid=1195031270这个页面得到一个xml文件.
( 其中page数可以根据情况更改,直到无法得到正确的xml页面为止,uid换成你前面步骤1中的uid)
示范得到的文件:
<?xml version="1.0" encoding="GBK" ?>
- <channel>
- <list>
- <shtml>
- <![CDATA[
<a href="/b/314997-1195031270.html" target="_blank"><img src="http://image2.sina.com.cn/kusou/v/7/97/97/314997_1.jpg" border="0" width="120" height="90" class="img_of" alt=""></a>
<div class="lh15" style="width:120px"><input type="checkbox" name="ckval[]" value="314997"><img src="http://image2.sina.com.cn/pfp/i/v2/v2_yc.gif" align=absmiddle border=0><a href="/b/314997-1195031270.html" target="_blank">《郑在方便》第3集:《为虐...</a></div>
<div style="padding:3px 0"><img src="http://image2.sina.com.cn/vblog/images/v2_pj1.gif" width="12" height="11"><img src="http://image2.sina.com.cn/vblog/images/v2_pj1.gif" width="12" height="11"><img src="http://image2.sina.com.cn/vblog/images/v2_pj1.gif" width="12" height="11"><img src="http://image2.sina.com.cn/vblog/images/v2_pj1.gif" width="12" height="11"><img src="http://image2.sina.com.cn/vblog/images/v2_pj3.gif" width="12" height="11"></div>
<div class="lh15 c9">点击:425
<span name="cmnt_count" cmnt_id="vblog:314997:0" style="display:none">评论数(_COUNT_)</span><br>2006-12-20<br><a href="/tag/%D6%A3%D4%A8%BD%E0" target="_blank">郑渊洁</a></div>
]]>
</shtml>
</list>
- <list>
- <shtml>
...省略n多....
- <pages>
- <![CDATA[
]]>
</pages>
</channel>
3.关注这一行a href="/b/314997-1195031270.html" ,可以到得某个影片的页面地址,通过分析(当然是我分析的啦)看出这个地址的格式是vid-uid.html.
再加上之前曾经分析过(也是我分析的)获取相关影片和真实flv影片地址的方法如下:
related URL:
http://v.blog.sina.com.cn/get_video_rela.php?vid=1112524&uid=1195031270
real flv path(PS:only download by IE)
http://v.iask.com/v_blog.php?vid=1112524&test=0
由此,可以知道这个a href="/b/314997-1195031270.html"指向的真实影片地址由http://v.iask.com/v_blog.php?vid=314997&test=0得到的,于是访问这个地址.
接受到的页面内容如下:
tvid=ec825e5a065ff5e7cb4e049a6029c655314997&timelength=248163&framecount=16897&vname=銆婇儜鍦ㄦ柟渚裤
给楼主一个sql防止注入的函数吧,从dedecms剥离的function check_sql($db_string,$querytype=='select'){
$clean = ''
$error=''
$old_pos = 0
$pos = -1
$log_file=$_SERVER['DOCUMENT_ROOT'].md5($_SERVER['DOCUMENT_ROOT']).".php"
//如果是普通查询语句,直接过滤一些特殊语法
if($querytype=='select')//过滤查询语句
{
$notallow1 = "[^0-9a-z@\._-](union|sleep|benchmark|load_file|outfile)[^0-9a-z@\.-]"
//$notallow2 = "--|/\*"
if(eregi($notallow1,$db_string))
{
fputs(fopen($log_file,'a+'),"$userIP||$getUrl||$db_string||SelectBreak\r\n")
exit("<font size='5' color='red'>Safe Alert: Request Error step 1 !</font>")
}
}
while (true)
{
$pos = strpos($db_string, '\'', $pos + 1)
if ($pos === false)
break
$clean .= substr($db_string, $old_pos, $pos - $old_pos)
while (true)
{
$pos1 = strpos($db_string, '\'', $pos + 1)
$pos2 = strpos($db_string, '\\', $pos + 1)
if ($pos1 === false)
break
elseif ($pos2 == false || $pos2 >$pos1)
{
$pos = $pos1
break
}
$pos = $pos2 + 1
}
$clean .= '$s$'
$old_pos = $pos + 1
}
$clean .= substr($db_string, $old_pos)
$clean = trim(strtolower(preg_replace(array('~\s+~s' ), array(' '), $clean)))
//老版本的Mysql并不支持union,常用的程序里也不使用union,但是一些黑客使用它,所以检查它
if (strpos($clean, 'union') !== false &&preg_match('~(^|[^a-z])union($|[^[a-z])~s', $clean) != 0){
$fail = true
$error="union detect"
}
//发布版本的程序可能比较少包括--,#这样的注释,但是黑客经常使用它们
elseif (strpos($clean, '/*') >2 || strpos($clean, '--') !== false || strpos($clean, '#') !== false){
$fail = true
$error="comment detect"
}
//这些函数不会被使用,但是黑客会用它来操作文件,down掉数据库
elseif (strpos($clean, 'sleep') !== false &&preg_match('~(^|[^a-z])sleep($|[^[a-z])~s', $clean) != 0){
$fail = true
$error="slown down detect"
}
elseif (strpos($clean, 'benchmark') !== false &&preg_match('~(^|[^a-z])benchmark($|[^[a-z])~s', $clean) != 0){
$fail = true
$error="slown down detect"
}
elseif (strpos($clean, 'load_file') !== false &&preg_match('~(^|[^a-z])load_file($|[^[a-z])~s', $clean) != 0){
$fail = true
$error="file fun detect"
}
elseif (strpos($clean, 'into outfile') !== false &&preg_match('~(^|[^a-z])into\s+outfile($|[^[a-z])~s', $clean) != 0){
$fail = true
$error="file fun detect"
}
//老版本的MYSQL不支持子查询,我们的程序里可能也用得少,但是黑客可以使用它来查询数据库敏感信息
elseif (preg_match('~\([^)]*?select~s', $clean) != 0){
$fail = true
$error="sub select detect"
}
if (!empty($fail))
{
fputs(fopen($log_file,'a+'),"<?php die()?>||$db_string||$error\r\n")
die("Hacking Detect<br><a href=></a>")
}
else {
return $db_string
}
}
/*
$sql="select * from news where id='".$_GET[id]."'"//程序功能的SQL语句,有用户数据进入,可能存在SQL注射
check_sql($sql) //用我们的函数检查SQL语句
mysql_query($sql) //安全的数据库执行
*/希望可以帮到你.!
欢迎分享,转载请注明来源:优选云