我在为我们基于Swift 5.0的iOS应用程序从网站获取某些数据时遇到了一个挑战。
首先,我们在后台填写并提交表单,然后网站显示一些数据,我们希望将这些数据放入我们的应用程序中(供以后在标签、tableView等中使用)。
我们将内部HTML作为字符串,如下所示:
webView.evaluateJavaScript("document.getElementsByTagName('html')[0].innerHTML")
生成的字符串包含我需要的所有数据,但我在提取它时遇到了问题。
我正在寻找的值是这样排列的(我想提取标记为"keyName“和"valueName”的数据(下面是"key“和”value“类):
<div class="box">
<div class="notrequired keyvalue singleDouble">
<span class="key">keyName:</span>
<span class="value">valueName</span>
</div>
<div class="notrequired keyvalue singleDouble">
<span class="key">keyName:</span>
<span class="value">valueName</span>
</div>
<div class="notrequired keyvalue singleDouble">
<span class="key">keyName:</span>
<span class="value">valueName</span>
</div>
<div class="notrequired keyvalue singleDouble">
<span class="key">keyName:</span>
<span class="value">valueName</span>
</div>
</div>
有没有人知道如何获取密钥和值?
谢谢。
发布于 2020-08-24 17:50:45
你可以查看这个库的SwiftSoup,这个答案对你很有帮助How to parse html table data to array of string in swift?
希望这能有所帮助。看起来这是你的案子!
发布于 2020-08-24 17:59:54
使用正则表达式捕获class="value">
和<
之间的字符串非常简单,htmlString
表示提取的HTML字符串。结果是一个字符串数组
let regex = try! NSRegularExpression(pattern: "class=\"value\">([^<]+)<")
let values = regex.matches(in: htmlString, range: NSRange(htmlString.startIndex..., in: htmlString))
.map{ String(htmlString[Range($0.range(at:1), in: htmlString)!]) }
print(values)
https://stackoverflow.com/questions/63557399
复制相似问题