【问题标题】:iOS: getting constantly updating information from webiOS:不断从网络获取更新信息
【发布时间】:2014-01-05 22:38:37
【问题描述】:

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

但是,我还想在我的应用中包含有关歌曲和艺术家的信息(不一定必须像在网络播放器中那样位于滚动条中)。在网络播放器中,这些信息是使用 JS 脚本不断获取和更新的——但是,我对 JS 的了解相当贫乏。我想知道是否有一种方法可以直接从脚本放置的网页中获取这些数据并将其包含在我的应用程序中?

【问题讨论】:

  • 学习 JS。这并不难。
  • 也许我应该更好地措辞。我有 JS 的工作(但肯定不是广泛的)知识。我需要知道的是如何解析来自网站的文本,以及使用 JS 脚本检索文本这一事实是否会发生任何变化。
  • 学习高级 JS。这并不难。 (只是高级:D)

标签: javascript ios stream


【解决方案1】:

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

【讨论】:

  • 这与 iOS 有什么关系?
【解决方案2】:

在我看来,JavaScript 并没有检索曲目的名称,而是服务器只是在 HTML 中返回该名称,因此您可以对其进行解析。

令我震惊的是,您可能不想解析这个 html 页面,而是想从直播服务器获取 7.html。如果您想要当前曲目的名称,请检索 .pls 内容以获取服务器的 URL(我通过查看 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,但这个服务器会。无论如何,那个 HTML 可能更容易解析。

【讨论】:

  • 你是对的。我用类似的东西解决了它。谢谢!
猜你喜欢
  • 2013-05-04
  • 2020-01-09
  • 2012-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多