【发布时间】: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,然后在加载完成后提取数据。