gpt4 book ai didi

html - 在 WKWebView 中加载单个 HTML 元素

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

我能够从 URL 获取 HTML 并将其加载到 WKWebView 中,但我只想从 HTML 加载单个元素。在这种情况下,该元素在旁边,<aside class="col-sm-4 col-md-3 col-lg-3 sidebar">

我获取所有 HTML 的代码。

func getHTMLString() -> String? {

let urlString = "https://kyfb.com/\(county)"

guard let countyUrl = URL(string: urlString) else {
return nil
}

do {
let htmlString = try String(contentsOf: countyUrl, encoding: .isoLatin1)
return htmlString
} catch let error {
print("Error: \(error)")
return nil
}
}

我正在尝试的具体 URL 是 https://kyfb.com/jefferson .那里有一个旁边有我想展示的一切。

最佳答案

从您下载的 HTML 代码中提取元素很容易:

    guard let html = getHTML()
else { return }

let regex = try! NSRegularExpression(pattern: "<aside class=\"col-sm-4 col-md-3 col-lg-3 sidebar\">([\\s\\S]*)</aside>")
let match = regex
.matches(in: html, range: NSRange(html.startIndex..., in: html))
.map {
html.substring(with: Range($0.range, in: html)!)
}

self.webView.loadHTMLString(match.first!, baseURL: nil)

问题是 CSS/JS 不会被捕获。另一种解决方案是注入(inject) Javascript 并隐藏除 <aside></aside> 之外的所有元素。

关于html - 在 WKWebView 中加载单个 HTML 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45680190/

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