iOS:不断更新网络信息

时间:2013-12-17 23:05:46

标签: javascript ios stream

所以我制作了一个iPhone应用程序,从这里流式传输在线广播:http://wvum.org/index.php/wvum/stream/

但是,我还想在我的应用程序中包含有关歌曲和艺术家的信息(它不一定必须在网页播放器中的滚动条中)。在Web播放器中,使用JS脚本不断获取和更新此信息 - 但是,我对JS的了解相当差。我想知道是否有办法从脚本将其打开的网页上抓取这些数据并将其包含在我的应用程序中?

2 个答案:

答案 0 :(得分:0)

你可能会做这样的事情Simple Screen Scraping using jQuery。看起来歌曲信息存储在页面上唯一的<marquee />

答案 1 :(得分:0)

在我看来JavaScript并不是在检索轨道的名称,而是服务器只是在HTML中返回它,所以你可以解析它。

令我感到震惊的是,您可能希望从shoutcast服务器中获取7.html,而不是解析此html页面。如果您想要当前曲目的名称,请检索.pls内容以获取服务器的网址(我通过查看http://www.wvum.org/listen.pls确定),然后检索7.html以获取相关信息,例如http://wvum.org:9010/7.html

NSURL *url = [NSURL URLWithString:@"http://wvum.org:9010/7.html"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setValue:@"Mozilla/5.0" forHTTPHeaderField:@"User-Agent"];
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
    if (connectionError) {
        NSLog(@"sendAsynchronousRequest error: %@", connectionError);
        return;
    }
    NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    NSLog(@"server response = %@", string);
}];

并非所有服务器都响应7.html,但这个服务器会响应{{1}}。无论如何,HTML可能更容易解析。