使用正则表达式搜索 HTML? [迅捷1.2]
Posted
技术标签:
【中文标题】使用正则表达式搜索 HTML? [迅捷1.2]【英文标题】:Using Reg expressions to search through HTML? [swift 1.2] 【发布时间】:2015-11-30 14:31:09 【问题描述】:我正在尝试执行屏幕抓取,因为我找不到相关的免费 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 毫升
</td>
</tr>
</tbody>
</table>
</div>
<h3 class="CarMiniProfile-subheading">Check this car in 3 simple steps...</h3>
【问题讨论】:
不要对 HTML 使用正则表达式。欣赏:***.com/a/1732454/2227743 【参考方案1】:对 html 使用正则表达式不是一个好主意,我同意。有时我不得不用正则表达式和 html 做一些真正令人讨厌的事情。
如果你绝对必须这样做,那么这里是 MAKE 的一个:
<td.*?CarMiniProfile-tableHeader.*?\n*(.*?)\n*<\/td>
您应该能够针对您需要的所有其他内容进行自定义。不过,使用正则表达式绝对不是推荐的解决方案。
【讨论】:
谢谢。如果不使用正则表达式,你会建议什么更好的方法? 没问题。也许这样的事情会帮助你:search.cpan.org/~ether/WWW-Mechanize-1.75/lib/WWW/Mechanize.pm以上是关于使用正则表达式搜索 HTML? [迅捷1.2]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Notepad++ 正则表达式搜索匹配 HTML 属性?