在 Swift 中从 html 页面读取数据

问题描述 投票:0回答:2

我想编写一个应用程序来显示特定 HTML 页面的数据。 如何阅读文本,例如在 div 中并将该文本转换为字符串?如何在该页面上搜索某些内容或在表格的行中查找?

html string swift search webview
2个回答
2
投票

您需要注意完成此任务需要执行什么步骤。

首先需要加载html页面数据 使用解析器找到您需要的内容后。

在第一步中我找到了这段代码

let url = NSURL(string: "http://www.stackoverflow.com")

let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {(data, response, error) in
     println(NSString(data: data, encoding: NSUTF8StringEncoding))
}

task.resume()

此链接中的示例如何在 Swift 中发出 HTTP 请求?

看这个例子,你做了一个请求并返回一个数据,这个数据需要是

String
。收到数据后,您需要解析以找到您想要的内容。

第二步需要工具来执行,简单的方法是使用诸如 slipt 之类的字符串方法。如果您需要更智能的东西,我推荐

Regular Expression

split
(swift 1.2)的简单示例

var fullName = "First Last"
var fullNameArr = split(fullName) {$0 == " "}
var firstName: String = fullNameArr[0]
var lastName: String? = fullNameArr.count > 1 ? fullNameArr[1] : nil

示例(swift 2.0)

let fullName = "First Last"
let fullNameArr = split(fullName.characters){$0 == " "}.map(String.init)

fullNameArr[0] // First
fullNameArr[1] // Last

来自 Swift 的示例:将字符串拆分为数组

这个链接很好关于

Regular Expression
,请注意它是一个强大的解析工具,用它你可以搜索html中的任何内容。

NSRegularExpression 教程:入门

我希望这个解释对您有所帮助。


1
投票

更新为 Swift 5

获取 html 数据的一些修改:

let url = NSURL(string: "https://www.stackoverflow.com")
    let task = URLSession.shared.dataTask(with: url! as URL) {(data, response, error) in
        if data != nil { // otherwise will crash for if url is empty
            let dataString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)!
            print("url data:",dataString)
        } else {print("url data not found")}
    }
task.resume()
© www.soinside.com 2019 - 2024. All rights reserved.