我有HTML页面,如:
...
// Product 1
<div class="lst_main">
<a href="link1.html">
<span> Product 1 name </span>
<div class="lst_meta">
<span> Product1 $price</span>
</dev>
</div>
// Product 2
<div class="lst_main">
</div>
....
// Product N
<div class="lst_main">
</div>
....
我需要获取每种产品的网址,名称和价格。对于这个任务,我使用Kanna lib,这里是我的代码:
let myURLString = "https://url/to/page"
let myURL = URL(string: myURLString)
do {
let myHTMLString = try String(contentsOf: myURL, encoding: .ascii)
if let doc = HTML(html: myHTMLString, encoding: .utf8) {
for product in doc.xpath("//div[@class='lst_main']") {
print(product.text)
}
}
} catch let error {
print("Error: \(error)")
}
使用此代码我可以获得所有产品。但我无法理解,如何获得每种产品的链接,名称和价格?
答案 0 :(得分:5)
我找到了解决方案:
for product in doc.xpath("//div[@class='lst_main']") {
let productURL = product.at_xpath('a')
print(productURL?["href"])
let productName = product.at_xpath('span')
print(productName?.text)
let productPrice = product.at_xpath('div[@class='lst_meta']/span')
print(productPrice?.text)
}