最新消息:

百度网盘音乐、pdf等文件外链获取

PHP admin 1935浏览 0评论

今天看到了一篇文章:百度网盘音乐外链源码,感触颇多。文章讲解了如何获取百度网盘的音乐文件的外链地址,即创建分享链接然后从分享链接的源码中获取音乐文件的外链地址。详细内容如下:

—————————————————————————————————————————–

百度网盘音乐外链源码

使用方法:
一、首先复制php代码,另存为文件baidupan.php,然后将php文件放到网站根目录。
二、上传音乐到百度网盘,创建公开分享链接,获取链接中shareid和uk两个参数的值。
三、构造外链地址:http://www.poboke.com/baidupan.php/shareid/uk.mp3
例如歌曲“没有什么不同”的公开分享地址是:
http://pan.baidu.com/share/link?shareid=292667&uk=1562437020
则外链地址为:

www.poboke.com替换为你自己的域名。

%3D&rt=sh&expires=8h&r=946210153&sh=1

 

    <?php
    //匹配shareid和uk参数
    preg_match('|\/(\d*)\/(\d*)\.|', $_SERVER["REQUEST_URI"], $res);
    list($shareid, $uk) = array_slice($res, 1, 2);

    //构造百度网盘分享网址获取源码
    $url = "http://pan.baidu.com/share/link?shareid=$shareid&uk=$uk";
    $src = file_get_contents($url);

    //匹配源码里面的音乐地址并跳转
    preg_match('|MusicPlayer\("(.*)"|U', $src, $res);
    $songurl = $res[1];
    //preg_match('|hidefocus="true" href="(.*)"|U', $src, $res);
    //$songurl = str_replace("amp;", "", $res[1]);
    header("location:$songurl");
    ?>

四、下面是自动转换的代码,另存为html文件,用浏览器打开:

 

    <!DOCTYPE HTML>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript">
    function Change()
    {
    var url = document.getElementById("text1").value
    var arr = url.split("&")
    var shareid = arr[0].split("=")[1]
    var uk = arr[1].split("=")[1]
    var songurl = "http://poboke.com/baidupan.php/"+shareid+"/"+uk+".mp3"
    document.getElementById("text2").value = songurl
    }
    </script>
    </head>

    <body>
    分享地址:<input id="text1" type="TEXT" value="" size="100"/><br />
    外链地址:<input id="text2" type="TEXT" value="" size="100"/><br />
    <input type="BUTTON" value="转换" onclick="Change()"/>
    </body>
    </html>

————————————————————————-

上面的内容即为原作者分享的博客内容,上面有两段代码,第一段代码是php编写的获取外链的代码,第二段代码是html语言编写的利用上面的
php脚本转换的过程。其实不用搞得那么麻烦,作者讲的内容的实质是可以百度网盘的分享链接中可以获取到文件的真实地址。作者搞得这么麻烦的
原因是作者要将获取的音乐外链用于其他地方,而有的地方要求音乐链接的后缀必须是mp3等音频格式,因此作者才会再获取了真实文件地址之后要
将链接转换为.mp3后缀链接。
下面讲解我的实验过程,我以pdf文件为例,因为我一直想在博客中google doc嵌入pdf文件。
1、创建pdf文件公开链接。
20130730215808
2、访问创建的公开链接,查看源代码。可以在源代码中找到两处含有公链地址的地方。

下载按钮处:

<a class="new-dbtn" hidefocus="true" href="http://d.pcs.baidu.com/file/c7856be739bedb3eb829ac0170b6b3c6?fid=2317665175-250528-4013268916&amp;time=1375192887&amp;sign=FDTAR-DCb740ccc5511e5e8fedcff06b081203-9oQQFZwhg4Kv5%2FbnOSXrJq0f30U%3D&amp;rt=sh&amp;expires=8h&amp;r=122170927&amp;sh=1&amp;response-cache-control=private" id="downFileButtom"><em class="icon-download"></em><b>下载(302.54K)</b></a>

href属性的值即为外链地址。

20130730220209

 

脚本处:

<script type="text/javascript">$(window).load(function(){disk.util.ViewShareUtils.installDocPlayer("{\"fs_id\":\"4013268916\",\"app_id\":\"250528\",\"path\":\"\\/python\\/IDAPythonIntro.pdf\",\"root_ns\":\"541624973\",\"parent_path\":\"%2Fpython\",\"server_filename\":\"IDAPythonIntro.pdf\",\"size\":\"309804\",\"server_mtime\":\"1374719920\",\"server_ctime\":\"1345472575\",\"local_mtime\":\"1322062091\",\"local_ctime\":\"1322062023\",\"isdir\":\"0\",\"isdelete\":\"0\",\"status\":\"4\",\"category\":\"4\",\"share\":\"0\",\"path_md5\":\"13853174825477840271\",\"delete_fs_id\":\"0\",\"md5\":\"c7856be739bedb3eb829ac0170b6b3c6\",\"headurl\":\"http:\\/\\/bs.baidu.com\\/p-f8fae5b1f23a1211ab7faec07fab9bd2\\/c7856be739bedb3eb829ac0170b6b3c6?sign=MBOT:gNQ17x3aoMs8:cszQKBqvu2tbCgD4C41g%2BDTMcDI%3D&time=1375236087&response-content-disposition=attachment;%20filename=IDAPythonIntro.pdf\",\"dlink\":\"http:\\/\\/d.pcs.baidu.com\\/file\\/c7856be739bedb3eb829ac0170b6b3c6?fid=2317665175-250528-4013268916&time=1375192887&sign=FDTAR-DCb740ccc5511e5e8fedcff06b081203-9oQQFZwhg4Kv5%2FbnOSXrJq0f30U%3D&rt=sh&expires=8h&r=122170927&sh=1\",\"thumbs\":{\"url1\":\"http:\\/\\/www.baidupcs.com\\/thumbnail\\/c7856be739bedb3eb829ac0170b6b3c6?fid=2317665175-250528-4013268916&time=1375192887&sign=FDTAR-DCb740ccc5511e5e8fedcff06b081203-LEy3a%2BdOJvt2j2wckqxvl7nMRI8%3D&rt=sh&expires=8h&size=c140_u90&quality=100\",\"url3\":\"http:\\/\\/www.baidupcs.com\\/thumbnail\\/c7856be739bedb3eb829ac0170b6b3c6?fid=2317665175-250528-4013268916&time=1375192887&sign=FDTAR-DCb740ccc5511e5e8fedcff06b081203-LEy3a%2BdOJvt2j2wckqxvl7nMRI8%3D&rt=sh&expires=8h&size=c850_u580&quality=100\"},\"docpreview\":\"http:\\/\\/www.baidupcs.com\\/doc\\/c7856be739bedb3eb829ac0170b6b3c6?fid=2317665175-250528-4013268916&time=1375192887&sign=FDTAR-DCb740ccc5511e5e8fedcff06b081203-EUXV5DbCFnBar%2FyPKm6yhdtf59Y%3D&rt=sh&expires=8h\",\"is_baiduspider\":0}");});</script>

其中脚本中的dlink参数即为外链。

20130730220234

3、通过上面两处地方,获取到外链地址:http://d.pcs.baidu.com/file/c7856be739bedb3eb829ac0170b6b3c6?fid=2317665175-250528-4013268916&amp;time=1375192887&amp;sign=FDTAR-DCb740ccc5511e5e8fedcff06b081203-9oQQFZwhg4Kv5%2FbnOSXrJq0f30U%3D&amp;rt=sh&amp;expires=8h&amp;r=122170927&amp;sh=1&amp;response-cache-control=private,但是此外链地址是讲过html编码过的,需要将其解码,最简单的方法是直接将上面链接放到一个

html文件中,网页显示的地址即为解码后的地址:http://d.pcs.baidu.com/file/c7856be739bedb3eb829ac0170b6b3c6?fid=2317665175-250528-4013268916&time=1375192887&sign=FDTAR-DCb740ccc5511e5e8fedcff06b081203-9oQQFZwhg4Kv5%2FbnOSXrJq0f30U%3D&rt=sh&expires=8h&r=122170927&sh=1&response-cache-control=private

4、使用google doc viewer获取内嵌地址(https://docs.google.com/viewer):

<iframe src="http://docs.google.com/viewer?url=http%3A%2F%2Fd.pcs.baidu.com%2Ffile%2Fc7856be739bedb3eb829ac0170b6b3c6%3Ffid%3D2317665175-250528-4013268916%26time%3D1375190731%26sign%3DFDTAR-DCb740ccc5511e5e8fedcff06b081203-7DN7ljDFh5Uhy1pIgc1IYg%252Bzdxc%253D%26rt%3Dsh%26expires%3D8h%26r%3D946210153%26sh%3D1&embedded=true" width="600" height="780" style="border: none;"></iframe>

将其嵌到wordpress的结果如下:

总结:发现不管是pdf还是mp3,还是其他文件都可以获取到外链地址。说明:使用google doc viewer内嵌的pdf不能太大,否则显示不出来,最好是1M之内。

说明:上述操作获取到下载链接后,以为万事大吉了,结果第二天来看博客时发现内嵌的pdf不能显示了。所以回去研究一下获取的外链地址:http://d.pcs.baidu.com/file/c7856be739bedb3eb829ac0170b6b3c6?fid=2317665175-250528-4013268916&time=1375192887&sign=FDTAR-DCb740ccc5511e5e8fedcff06b081203-9oQQFZwhg4Kv5%2FbnOSXrJq0f30U%3D&rt=sh&expires=8h&r=122170927&sh=1&response-cache-control=private。其中有一个参数expires=8h,说明这个链接8个小时以后就会过期,即获取的链接只有8小时的有效期(这也让我明白了,有时用迅雷下载百度网盘的自愿,暂停后第二天下载时会失败的原因了:原来下载链接8个小时就会失效)。

既然,每次获取的链接每8小时就要失效,看来应该和原作者一样,编写一个中转程序来实时获取下载链接,然后跳转到下载链接就行了。

ps 20130809:今天写了一下代码,测试时发现对于音乐文件,“下载”按钮处没有找到文件的真正地址,在下面的<script type=”text/javascript“>$(window).load(function(){disk.util.ViewShareUtils.installMusicPlayer(处找到。下面是获取音乐链接的PHP代码:

<?php
/*
 * Created on 2013-8-9
 *
 * To change the template for this generated file go to
 * Window - Preferences - PHPeclipse - PHP - Code Templates
 */
 	if (isset($_GET['shareid']) and isset($_GET['uk']))
 	{
 		$url = "http://pan.baidu.com/share/link?shareid=".$_GET['shareid']."&uk=".$_GET['uk'];
 		$src = file_get_contents($url);
 		//使用正则表达式来匹配源码里的地址
 		preg_match('/disk.util.ViewShareUtils.installMusicPlayer\("(.+)","/',$src,$result);
 		$result = $result[1];
 		header("location: $result");
 	}
 	else
 	{
 		echo "参数不完整";
 	}
?>

 

 

转载请注明:jinglingshu的博客 » 百度网盘音乐、pdf等文件外链获取


Warning: Use of undefined constant PRC - assumed 'PRC' (this will throw an Error in a future version of PHP) in /usr/share/nginx/html/wp-content/themes/d8/comments.php on line 17
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. 原博客文章宣传方法失效了,你的方法还能用吗?
    bagusflyer5年前 (2016-07-12)回复