我试图执行屏幕刮,因为我找不到相关的免费API来获取我需要的数据。我已经设法执行刮擦并抓取HTML页面,但我坚持的部分是从抓取的内容中获取相关信息。我猜我需要使用REG表达式来搜索HTML,但不确定如何做到这一点。我所追踪的信息是当前汽车搜索的MAKE,MODEL,YEAR。
var url = NSURL(string: "https://www.rac.co.uk/buying-a-car/car-passport/report/buyer/purchase/?BuyerVrm=yg06dxt")
if url != nil {
let task = NSURLSession.sharedSession().dataTaskWithURL(url!, completionHandler: { (data, response, error) -> Void in
print(data)
if error == nil {
var urlContent = NSString(data: data, encoding: NSASCIIStringEncoding) as NSString!
print(urlContent)
}
})
task.resume()
}
}
下载了重新调整后的信息样本
<p class="CarMiniProfile-caveat u-hidden">*image for illustrative purposes only</p>
<div>
<table class="CarMiniProfile-table">
<tbody>
<tr class="CarMiniProfile-tableFirstRow">
<td class="CarMiniProfile-tableHeader">
Make
</td>
<td>
FIAT
</td>
</tr>
<tr>
<td class="CarMiniProfile-tableHeader">
Model
</td>
<td>
PUNTO SPORTING M-JET
</td>
</tr>
<tr>
<td class="CarMiniProfile-tableHeader">
Colour
</td>
<td>
BLUE
</td>
</tr>
<tr>
<td class="CarMiniProfile-tableHeader">
Year
</td>
<td>
2006
</td>
</tr>
<tr>
<td class="CarMiniProfile-tableHeader">
Engine Size
</td>
<td>
1910 cc
</td>
</tr>
</tbody>
</table>
</div>
<h3 class="CarMiniProfile-subheading">Check this car in 3 simple steps...</h3>
答案 0 :(得分:0)
对于html使用正则表达式并不是一个好主意,我同意。有时我不得不用正则表达式和HTML做一些真正讨厌的东西。
如果你绝对必须这样做,那么这是MAKE的一个:
<td.*?CarMiniProfile-tableHeader.*?\n*(.*?)\n*<\/td>
您应该可以根据需要自定义此项。虽然使用正则表达式绝对不是推荐的解决方案。