【问题标题】:Retrieving specific text from div element in Swift从 Swift 中的 div 元素中检索特定文本
【发布时间】:2015-07-20 09:40:30
【问题描述】:

有没有办法在 Swift 或至少 Obj-C 中从网页中检索 div 内容?我在下图中选择了我希望检索的那个。它是动态的(彩票结果),所以它必须是一个 URL。

请告知是否有允许这种操作的教程或方法。我自己找不到。

http://i.imgur.com/JFFitbt.png

【问题讨论】:

标签: html ios swift url web


【解决方案1】:

获取内容

首先,您需要下载该页面的内容,以便可以像处理本地数据一样使用它。为此,请参阅 SO 上的following post,因为它会让您清楚地了解如何操作

我用 objc 为不同的站点编写了多个爬虫。并且迅速,并且为了您的目的,有更多的解决方案,其中一些比其他的更困难,通常取决于远程服务器的配置 - 但对于您想要做的事情,我强烈建议您使用TFHpple library

TFHpple

配置完成后,它允许您使用XPath 遍历已解析的html / xml。来自 W3C 网站:

XPath 是一种用于定义 XML 文档部分的语法

基本上,您不必遍历某个非常长且动态的对象树,而只需定义“规则”如何使用单行符号找到它,其余的是适合该角色的节点组。

假设您想在页面上找到符合 class="myClass" 规则的所有链接,您可以这样使用它:

let data = NSData(contentsOfFile: "page.html")

let document = TFHpple(HTMLData: data)
let elements = doc.search("//a[@class='myClass']")

然后,在元素数组中,您可以找到所有结果作为具有更多信息的节点以及包含的子节点。

人人都喜欢简单

如果您不想学习如何使用 XPath,有一个非常简单的解决方案。通过谷歌浏览器浏览页面时,打开开发者控制台(Ctrl[win] / Cmd[mac] + Shift + C)并在“元素”浏览器中寻找你感兴趣的标签。然后,单击右键并选择复制 XPath。在您的解析器中使用该 XPath,并从中受益 :) Here is the screenshot 它的实际外观。

祝你好运!

【讨论】:

    猜你喜欢
    • 2017-10-07
    • 1970-01-01
    • 2021-08-22
    • 1970-01-01
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    相关资源
    最近更新 更多