我正在尝试分析此网球统计网站:https://www.ultimatetennisstatistics.com/playerProfile?playerId=3333#。
[当我在Chrome中打开页面并对其进行检查时,存在一个类别为“ row”的div元素。
当我在Swift应用程序中发出Url请求时,如下所示:
let task = URLSession.shared.dataTask(with: url) { (dat, response, err) in
if let error = err{
print(error)
}else{
guard let data = dat else {
return
}
if let htmlString = NSString(data: data, encoding: String.Encoding.utf8.rawValue) {
// continue to work with the html string here
}else{
print("Error no htmlString")
}
}
}
task.resume()
并打印出html,在我希望找到“ row”类的div的地方,我得到了一个“ loading”类的div。
我认为这可能是因为该网站上的脚本尚未运行。如何解决此问题并让脚本运行并等待其回调?或者我还能如何解决这个问题?预先谢谢你。
我通过将链接加载到webView中并在短暂的延迟后提取html来解决了此问题。这是我的代码:
let url = URL(string: "https://www.ultimatetennisstatistics.com/playerProfile?playerId=3333#")!
let request = URLRequest(url: url)
webview.load(request)
DispatchQueue.main.asyncAfter(deadline: .now() + 5.0) {
self.webview.evaluateJavaScript("document.documentElement.outerHTML") { (was, err) in
if let doc = was {
print(doc)
}else{
print(err!)
}
}
}