我目前有一个需要从其中输入某些文本的html文件,并且我安装了Fuzi来帮助我解析html。我需要从中获取文本的html文件部分如下所示:
<pre class="lyric-body" onclick="location.href='SOME_URL_HERE';">
THE TEXT THAT I NEED TO GET IS IN HERE
</pre>
以及我为开始解析HTML而设置的内容:
if let myString = String(data: data!, encoding: usedEncoding) {
do {
let doc = try HTMLDocument(string: HTML_FILE, encoding: NSUTF8StringEncoding)
for lyric in doc.xpath("//pre/@class") {
print(lyric)
}
} catch let error {
print(error)
}
} else {
print("failed to decode data")
}
当前打印:
class="lyric-body"
我曾尝试阅读Fuzi文档,但似乎没有尝试返回与所需文本相似的内容。
您的XPath不正确,您正在提取class
属性。如果要提取<pre>
标签内的文本,则需要使用该文本"//pre[@class='lyric-body']"
。如果您想直接获取文本内容,可以使用"//pre[@class='lyric-body']\text()"
由于Fuzi支持CSS选择器,因此您也可以使用以下代码来获取带有类的元素"lyric-body"
:
for link in doc.css(".lyric-body") {
// print stringValue or anything you need
}
希望对您有帮助
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句