从Swift中的html页面读取数据

时间:2015-09-14 14:09:12

标签: html string swift search webview

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

2 个答案:

答案 0 :(得分: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()

此链接示例How to make an HTTP request in Swift?

查看此示例,您执行请求并返回数据,此数据需要为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: Split a String into an array

的示例

此链接非常适合Regular Expression,请注意它是一个功能强大的解析工具,您可以在其中搜索HTML中的任何内容。

NSRegularExpression Tutorial: Getting Started

我希望能帮助你解释这个问题。

答案 1 :(得分:0)

更新语法(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()