在Swift中从html页面读取数据
我想编写一个应用程序,向您显示特定HTML页面的数据。在Swift中从html页面读取数据,html,string,swift,search,webview,Html,String,Swift,Search,Webview,我想编写一个应用程序,向您显示特定HTML页面的数据。 如何读取div中的文本并将其转换为字符串?如何在该页上搜索内容或在表格的行中查找 你需要知道完成这项任务需要什么步骤 首先需要加载html页面数据 在找到您需要的解析器之后 在第一步中,我找到了这个代码 let url = NSURL(string: "http://www.stackoverflow.com") let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {
如何读取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()
来自此链接的示例
看这个例子,您执行一个请求并返回一个数据,这个数据需要是String
。在收到数据后,您需要解析以查找所需内容
第二步,您需要工具来执行,简单的方法是使用字符串方法,比如slip。如果您需要更智能的东西,我推荐正则表达式
拆分的简单示例(swift 1.2)
示例(swift 2.0)
来自
这个链接非常适合正则表达式
,请注意它是一个强大的解析工具,通过它,您可以搜索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()
谢谢你的回答!我还有几个问题。让我们从第一个开始。我已经听过parser这个词,但是你能不能快速地解释一下它是什么,以及我应该如何实现它。我试过解析。Xcode说它不知道“tfhpple”如何修复它?解析器,嗯。。。解析器是指当您需要从som数据中提取一些信息时,例如所有html
页面都有
和
,想象一个网站有一个
,并且您有一个应用程序需要从html页面加载价格。为此,您可以使用正则表达式在
之间搜索内容,并在应用程序中显示某物的价格。。这是一件很有趣的事。。什么是tfhpple
可以说得更多吗?它出现时的一些示例!?我还看了一些其他教程,它们集成了一个tfhpple文件
let fullName = "First Last"
let fullNameArr = split(fullName.characters){$0 == " "}.map(String.init)
fullNameArr[0] // First
fullNameArr[1] // Last
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()