【问题标题】:Xcode won't download the exact HTML from websiteXcode 不会从网站下载确切的 HTML
【发布时间】:2015-03-03 23:34:23
【问题描述】:

我开始使用 Swift,但遇到了这个错误。我想从这个网站获取“8,660”(在“DOLAR VENTA”下):http://www.lanacion.com.ar/dolar-hoy-t1369 如果你检查网站中的数字元素,你会发现:

<p id="dventa">8,<span>660</span></p>

而且我认为我可以从那行获取数据。

问题是,当我下载它并使用此代码将其打印到输出时:

@IBAction func obtenerPrecio(sender: AnyObject) {

    let url = NSURL(string: "http://www.lanacion.com.ar/dolar-hoy-t1369")

    let task = NSURLSession.sharedSession().dataTaskWithURL(url!, completionHandler: { (data, response, error) -> Void in

        if error == nil {

            var urlContent = NSString(data: data, encoding: NSUTF8StringEncoding) as NSString!

            //var urlContentArray = urlContent.componentsSeparatedByString("<p id=\"dventa\">")

            println(urlContent)

        } else {

            println(error)

        }


    })

    task.resume()

}

我得到的是这个(我只会展示需要的部分):

<p id="dventa">-</p>

“-”应该是数据在哪里。我可以做些什么来获取信息?谢谢

【问题讨论】:

  • 您请求的页面似乎有一些运行以更新内容的 javascript。由于您刚刚静态加载了原始 HTML 数据,而不是在 Web 视图中,因此您不会得到这种行为。
  • @IanMacDonald 我需要将标签的文本与该信息 (8,660) 相等我可以以任何方式这样做吗?
  • 您需要在 Web 视图中加载 URL,然后在加载完成后提取数据。

标签: html ios xcode swift


【解决方案1】:

如评论中所述,此数据由 javascript 加载。快速浏览网站表明数据实际上来自here,解析起来要简单得多。

dolarjsonpCallback({"Date":"2015-02-03T00:00:00","CasaCambioVentaValue":"8,66","BolsaCompraValue":"12,48","BolsaVentaValue":"12,48","InformalVentaValue":"13,3","CasaCambioCompraValue":"8,56","InformalCompraValue":"13,33"});

【讨论】:

  • 对不起@Jeremy 但是,你是怎么到那里的?而且,这些数字与网站上出现的数字并不完全相同
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多