使用正则表达式搜索 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]的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式——html

如何使用 Notepad++ 正则表达式搜索匹配 HTML 属性?

正则表达式

使用正则表达式的 T-SQL 搜索 html?

Linux文本过滤搜索器grep与egrep的常用正则表达式与用法

正则表达式:擦洗 HTML