2015-07-20 74 views
0

有没有方法从Swift或至少Obj-C的网页中检索div内容?我在下面的图片中选择了我想要检索的那个。它是动态的(抽奖结果),所以它必须是一个URL。在Swift中检索div元素中的特定文本

请指教是否有教程或方法允许这种操作。我无法为自己找到它。

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

+0

http://stackoverflow.com/questions/992348/reading-html-content-from-a-uiwebview –

回答

1

获取内容

首先,你需要下载页面的内容,所以你可以使用它与本地数据。要做到这一点,请在SO上看到following post,因为它会给你清楚的想法如何去做

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

TFHpple

一旦它配置,它可以让你做的是使用XPath遍历解析的HTML/XML。从W3C网站:

XPath是用于定义部分XML文档的

基本上,而不是通过一段很长的和动态对象的树遍历语法,你只定义“规则”如何使用单线符号找到它,其余的是适合该角色的一组节点。

比方说,你想找到一个适合类=“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)并在“Elements”浏览器中查找您感兴趣的标签。然后,单击右键并选择复制XPath。在您的解析器中使用该XPath,并获利:)其实际外观如何。

祝你好运!