使用Kanna导入,我目前正在使用以下代码解析html:
if let doc = Kanna.HTML(url: NSURL(string: "https://en.wikipedia.org/wiki/Data")!, encoding: NSUTF8StringEncoding) {
// Search for nodes by XPath
for link in doc.xpath("/html/head...") {
primaryDisplay.text!=link.text!
print(link.text)
}
}
}
我想知道如何识别html页面中的特定“节点”(不确定这是否是正确的术语),以解析我想要的特定数据……
这是一张我想知道的图片。我想..。
发布于 2016-12-30 02:52:17
做你所发现的事情的一种简单方法是使用SwiftSoup
试试这个:
do{
let html = "<!DOCTYPE html>" +
"<html>" +
"<head>" +
"<title>Some webpage</title>" +
"</head>" +
"<body>" +
"<p class='normal'>This is the first paragraph.</p>" +
"<p class='special'><b>this is in bold</b></p>" +
"</body>" +
"</html>";
let doc: Document = try SwiftSoup.parse(html)
let els: Elements = try doc.getElementsByClass("special")
let special: Element? = els.first()//get first element
print(try special?.text())//"this is in bold"
print(special?.tagName())//"p"
print(special?.child(0).tag().getName())//"b"
}catch Exception.Error(let type, let message)
{
print("")
}catch{
print("")
}
发布于 2018-07-28 02:43:11
您还应该看看xpath/xquery -它是一种专门用于遍历和查询XML的语言,这使得它适用于XHTML和HTML。XHTML基本上是格式良好的HTML。
假设您的机器上安装了xpath/xquery解析器,您可以...
XQuery增加了使用类似SQL的语法来查询文档的功能。
使用此解析器或任何其他用于html的解析器的困难在于,HTML通常不是格式良好的。这意味着并不是每个开始标记都有结束标记。这使得任何类型的解析都有些粗略,因为解析器可能无法弄清楚HTML所隐含的层次结构。
https://stackoverflow.com/questions/34491431
复制相似问题