这个下载地址有什么规律?

2015-04-13 23:28:51 +08:00
 yaoppp

在v2ex的第一次发帖。
听CRI easyfm的飞鱼秀很多年,一直追求听完整的3个小时,但早上直播的时间经常不方便,所以这些年都下载回放。前些日子该节目改版,只能用easyfm的app听,通过抓包找到了音频的下载地址,但是文件名没什么规律,如:
4月10号的
http://123.56.91.34/Uploads/media/20150410/20150410134301_66025.mp3

4月13号的
http://123.56.91.34/Uploads/media/20150413/20150413140314_46952.mp3

在日期之后接了很多看似无关的数字。

每天的节目都要抓一下包也不是不可以,但是比较麻烦。有高人能看出后面这段数字的规律吗?多谢。

4242 次点击
所在节点    问与答
35 条回复
yaoppp
2015-04-14 20:57:37 +08:00
@Daniel65536 @surftheair Thank you all.
@rrkelee Thank you all the same.
lsdnes
2015-04-15 10:50:22 +08:00
请问Daniel65536:
您的指令是用什麽语言执行的,还有unicode要怎麽转换成中文。
谢谢
lsdnes
2015-04-17 09:18:40 +08:00
搞定(加入WIKI語法,方便增加WIKI的內容)
<?php
// 建立CURL連線
$ch = curl_init();
// 設定擷取的URL網址
curl_setopt($ch, CURLOPT_URL, "http://ezfm.china-plus.net/index.php?m=index&a=cat_list&cid=224");
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
// 執行
$jsonString =curl_exec($ch);
// 關閉CURL連線
curl_close($ch);
$cart = json_decode( $jsonString );
echo "EZ Morning 飞鱼秀</BR></BR>";
for ($i = 1; $i < count($cart->data); $i++) {
echo "*[<a href=".$cart->data[$i]->url.">".$cart->data[$i]->url."</a> ";
echo $cart->data[$i]->title . "-";
echo $cart->data[$i]->update_time;
echo " (".$showdate= date("l",strtotime($cart->data[$i]->update_time)).")]</BR>";;
}
?>
manoon
2015-04-17 23:57:05 +08:00
好吧,看到这帖,才发现。规矩可能是改掉了。
好多年前,我就在偷偷下载他们的音频了。
Daniel65536
2015-04-18 00:19:22 +08:00
@lsdnes 你不直接@我,我是看不到提醒的。

直接在terminal运行就好。
lsdnes
2015-04-18 22:14:50 +08:00
@Daniel65536 謝謝,不過我沒有linux,大概無法測試,不過用PHP解決我了下載的問題了。
PS. for ($i = 1; $i < count($cart->data); $i++) {
$i初值要設為0才抓得到最新的一筆資料
manoon
2015-04-19 01:25:27 +08:00
@lsdnes 18条以后的如何获取?如何遍历呢?百思不得其解。。。
lsdnes
2015-04-23 07:07:11 +08:00
@manoon
分析這個網址 http://ezfm.china-plus.net/index.php?m=index&a=cat_list&cid=224
顯示{"data":[{"id":"450","cid":"224","title":"\u98de\u9c7c\u79c0-\u4e22\u4e1c\u897f","compere":"","lpic":"http:\/\/123.56.91.34\/Uploads\/image\/20150422\/20150422122728_33996.jpg","url":"http:\/\/123.56.91.34\/Uploads\/media\/20150422\/20150422123741_52958.mp3","duration":"","brief":"","m_share":"0","pub_share":"","open_status":"1","hits":"104","b_hits":"1853","c_hits":"23","d_hits":"685","update_time":"2015-04-22","f_time":"1\u5929\u524d","size":"126.17"}...............
依JSON是可視為將所有參數存入data[] array中
其他有用的參數官網有說明如:
url:链接地址
update_time:更新日期
title 名稱
所以先可以用php的json_decode來反譯
$cart = json_decode( $jsonString );
因為資料每一筆擷取到的資料是存在data[] array中,見({"data":[{....)
所以你想取得第一筆的mp3網址、更新時間及title
就用
cart->data[0]->url
cart->data[0]->update_time
cart->data[0]->title
第二筆就是
cart->data[1]->url
cart->data[1]->update_time
cart->data[1]->title
以此類推

另外說明的是因為每天都會有新資料進來
也就是data[]每天都會變大(每天新的一筆會按序從data[0]開始)
所以for 就終值就設定的為data[]的筆數

PS 我不太熟OPP所以不太會解釋它的用法。
lsdnes
2015-04-23 22:40:00 +08:00
lsdnes
2015-04-23 22:41:03 +08:00
manoon
2015-04-24 11:31:45 +08:00
@lsdnes 谢谢。
恕我愚钝
我还是没搞明白,如何获取2015-03-25 以前的源呢?
还是说,他这个START就是03-25.
以后只会一直增加,但03-25肯定不会消失?
(我原先的理解是,他只输出一定的条数。相当于 cat -20 ./aa.txt, 即使aa.txt内容再长,他也只输出20条)
xiaochong
2015-04-24 21:04:33 +08:00
https://gist.github.com/zhichenghou/df8117264854be82c2b8
https://gist.github.com/zhichenghou/d710dcfca37f970c5489

go版本和python版本,启动从web访问后,就可以看到飞鱼秀的回放地址了。
lsdnes
2015-04-25 08:03:18 +08:00
http://english.cri.cn/easyfm/easymorning.html
即日起,飞鱼秀节目回放将全部移至轻松调频官方App,敬请搜索“轻松调频”下载收听。
飞鱼秀-2015-04-09 (周四) 等我老了
飞鱼秀-2015-04-08 (周三) 初恋这件小事

原來的網站不提供下載了,只能透過APP
但我們可以透過api取得APP的mp3網址
但這個api只從3/25才開始提供mp3
lsdnes
2015-05-03 17:49:45 +08:00
似乎又不能用了
yaoppp
2015-06-25 19:22:17 +08:00
@lsdnes 推荐一个下载网页http://stuff.oldhand.org/ezm/ezm.html

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/183526

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX