Подтвердить что ты не робот

Получить HTML из WKWebview в Swift

Я заходил на сайт с использованием WKWebView, и теперь я хотел бы проанализировать html сайта. Как я могу быстро получить доступ к веб-сайтам html? Я знаю, как это работает для UIWebView, но не для WKWebView.

Спасибо за вашу помощь!

4b9b3361

Ответ 1

Если вы дождались загрузки страницы, вы можете использовать:

webView.evaluateJavaScript("document.documentElement.outerHTML.toString()", 
                           completionHandler: { (html: Any?, error: Error?) in
    print(html)
})

Вы также можете добавить некоторый javascript, который вернет вам HTML-код.

let script = WKUserScript(source: javascriptString, injectionTime: injectionTime, forMainFrameOnly: true)
userContentController.addUserScript(script)
self.webView.configuration.userContentController.addScriptMessageHandler(self, name: "didGetHTML")

…

func userContentController(userContentController: WKUserContentController,
        didReceiveScriptMessage message: WKScriptMessage) {

        if message.name == "didGetHTML" {
            if let html = message.body as? String {
                print(html)
            }
        }
}

javascript, который вы можете ввести, выглядит примерно так:

webkit.messageHandlers.didGetHTML.postMessage(document.documentElement.outerHTML.toString());

Ответ 2

как получить адрес электронной почты из возвращенных данных HTML