我想编写一个应用程序来显示特定 HTML 页面的数据。 如何阅读文本,例如在 div 中并将该文本转换为字符串?如何在该页面上搜索某些内容或在表格的行中查找?
您需要注意完成此任务需要执行什么步骤。
首先需要加载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
这个链接很好关于
Regular Expression
,请注意它是一个强大的解析工具,用它你可以搜索html中的任何内容。
我希望这个解释对您有所帮助。
更新为 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()