我想从网站中提取链接。我使用以下代码检索了网站的 HTML:
let myHTMLString = try String(contentsOfURL: myURL)
并给出以下输出:
...
<div class="map-overlay-box">
<a href="{directions_link}" target="_blank" class="store-info self clear">
...
我想找到网页的 {directions_link} 部分。当我进入 Safari 并检查元素时,我能够看到链接,但在我的应用程序中,它只是替换为该占位符。
我尝试像这样使用Kanna
(见这里),但我没有结果:
if let doc = Kanna.HTML(html: myHTMLString, encoding: NSUTF8StringEncoding) {
for link in doc.xpath("//div[@class='map-overlay-box']") {
print(link.text)
print(link["href"])
}
}
有什么想法吗?
XPath 没有 CSS 类选择器的原生等效项。
请尝试以下路径:
//*[contains(concat(' ', normalize-space(@class), ' '), 'map-overlay-box')]
要排除您使用由javascript生成的动态HTML的工作,请尝试使用输出进行测试:
let myHTMLString = "<div class="map-overlay-box"><a href="{directions_link}" target="_blank" class="store-info self clear"></a></div>"
如果你的HTML是动态生成的,请记住,你还必须stringByEvaluatingJavaScriptFromString
帮助你解释JS并获取你的html字符串。