0

有什么方法可以从xiph.org获取所有 URL ?有没有办法直接查询站点以从 Web 应用程序中获取指定的收音机或指定类别的收音机?

4

2 回答 2

0

Xiph.org 现在正在开发JSON API (#tkt1958)。由于 mysqlsCONCAT(json_object(m.stream_name...查询,编码仍然被严重破坏。

但即使使用正则表达式 JSON 提取,它也比处理旧的yp.xml.

于 2014-05-04T19:44:46.487 回答
0

好的,我已经查看了该站点上的一些流。

如果您XSPF在文本编辑器中打开文件,您会得到一些 XML,其中包含在<location>选项卡中的流。

您将不得不为此设置某种爬虫。我给你做一个简单的。

//define the link
$link = 'http://dir.xiph.org/';

//get the contents
$contents = file_get_contents($link);

preg_match_all('|"/listen/(.*)/listen.m3u"|',$contents,$match);


//define xspf link array
$xspfLinks = array();

//define default link
$xspfLink = 'http://dir.xiph.org/listen/';

//define final stream array
$finalStream=array();

foreach ($match[1] as $id )
{
    //assign ID to default link and throw it in the array
    $xspfLinks[]=$xspfLink.$id.'/listen.xspf';

}

// now loop through that array
foreach ($xspfLinks as $hehehe )
{
    //download xspf file
    $xspf = file_get_contents($hehehe);

    if(preg_match('|<location>(.*)</location>|',$xspf,$heheMatch))
    {

        //put stream url in final array
        $finalStream[]=$heheMatch[1];
        //test it
        echo 'HEHEHEHE I just stole:'.$heheMatch[1]."<br>";

    }
}

//now do as you please with $finalStream (it will contain all your stream urls)

我刚刚为你做了这一切-_-。但是,是的,这应该有效。

哦,还有一件事,如果你在不应该的时候愚蠢地窃取了那些流,我将不承担任何责任。

于 2012-08-07T07:59:05.387 回答