gpt4 book ai didi

json - 使用 alamofire + swift 获取动态加载的 html

转载 作者:行者123 更新时间:2023-11-28 08:11:37 25 4
gpt4 key购买 nike

我正在尝试请求网站的 html 代码,并在 Xcode (Swift 3.0) 和 pod Alamofire 的应用程序中使用它。在在线 html 代码中,我想要抓取的数据内容位于一个 div 类中,该类以 javascript 网络插件的形式从事件日历返回数据。由于网站不是静态的,当我请求 html 并将结果响应打印为字符串时,我想要的数据不包含在字符串中。出现一条消息说:

<noscript>Your browser must support JavaScript to view this content.
Please enable JavaScript in your browser settings then try again.
<a href="https://www.trumba.com">Events calendar powered by Trumba</a>
</noscript>

我使用 Alamofire 的代码如下所示:

func downloadCalendar(){
Alamofire.request(urlString).responseString { (AlamofireResponse) in
print(AlamofireResponse.result.value!)
}
}

urlString 是实际网页 url 的变量。有没有办法使用Alamofire将在线html中出现的所有html导入到Xcode中?如果 Alamofire 无法做到这一点,是否还有另一种方法可以使用 Swift 做到这一点?

最佳答案

我已经尝试完成类似的事情,不幸的是无济于事......

它接缝 AlamoFire 捕获它得到的第一个响应....

有一个解决方法——使用 UIWebView:

static let webView = UIWebView()
self.webView.loadRequest(URLRequest.init(url: URL.init(string:"http://example.com")!)

DispatchQueue.main.asyncAfter(deadline: .now()+10.0) {[unowned self] in
if let html = self.webView.stringByEvaluatingJavaScript(from: "document.documentElement.outerHTML")
{print(html)}
}

其中 10.0 是 javascript 完成加载网页数据所需的大约秒数。

但是因为:它不是线程安全的,你必须使用单例 webView,导入 UIKit 但无法在后台执行 - 这远非完美的解决方案...

在两者之间设置一个代理网络服务器来为您进行解析可能会更容易。

干杯!

关于json - 使用 alamofire + swift 获取动态加载的 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43601503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com