是否可以提取webview中加载的URL的源代码?

时间:2016-05-31 03:40:54

标签: ios macos swift2 webkit

这听起来很直接,我知道我会被告知只是获取网址会话的内容。但我特别想知道源代码是否可以从浏览器的最终渲染(post-javascript / JSON格式化)中派生出来

编辑:我遇到问题,发帖是已处理的内容。当我使用swift / objective-c或Java下载url的内容时,内容字符串具有基于Json搜索首选项的搜索结果的占位符。但是,在浏览器中,右键单击并选择“查看源”时,可以看到完整的结果页面。我需要一种以编程方式获取此post-js处理内容的方法。

编辑:我已经在webView中加载了代码。这是我的代码:

func loadAddressURL() {
    let url = "https://www.adomain.com/apath"
    let URL = NSURL(string: url)!
    let request = NSURLRequest(URL: URL)
    webView.mainFrame.loadRequest(request)
}

1 个答案:

答案 0 :(得分:4)

使用WKWebView,即Apple的recommended class为新代码嵌入网页视图。然后你可以通过它执行Javascript来获得后期渲染HTML:

// self.webView is a WKWebView

// In viewDidLoad() or applicationDidFinishLaunching()
self.webView.navigationDelegate = self

func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
    webView.evaluateJavaScript("document.getElementsByTagName('html')[0].innerHTML") { innerHTML, error in
        print(innerHTML!)
    }
}