gpt4 book ai didi

iphone - 在 iOS 中解析 XML/'screen scraping' 的最佳方法是什么? UIWebview 还是 NSXMLParser?

转载 作者:可可西里 更新时间:2023-11-01 03:06:32 24 4
gpt4 key购买 nike

我正在创建一个需要从网页获取一些数据的 iOS 应用程序。我的第一个方法是使用 NSXMLParser initWithContentsOfURL: 并使用 NSXMLParser 委托(delegate)解析 HTML。然而,这种方法似乎很快就会变得痛苦(例如,如果 HTML 发生变化,我将不得不重写解析代码,这可能很尴尬)。

当我加载网页时,我也查看了 UIWebView。看起来 UIWebView 可能是可行的方法。 stringByEvaluatingJavaScriptFromString: 似乎是一种非常方便的提取数据的方法,并且允许将 javascript 存储在单独的文件中,如果 HTML 更改,该文件将很容易编辑。然而,使用 UIWebView 似乎有点老套(因为 UIWebView 是一个 UIView 子类,它可能会阻塞主线程,文档说javascript 有 10MB 的限制)。

在我陷入困境之前,有人对解析 XML/HTML 有什么建议吗?

更新:

我写了一篇关于我的解决方案的博文:HTML parsing/screen scraping in iOS

最佳答案

我已经做过几次了。我发现的最佳方法是使用具有 HTML 模式的 libxml2。然后您可以使用 XPath 来查询文档。

使用 libxml2 API 并不是最令人愉快的。因此,我通常会带来本页记录的 XPathQuery.h/.m 文件:

http://cocoawithlove.com/2008/10/using-libxml2-for-parsing-and-xpath.html

然后我使用 NSConnection 获取数据并使用如下方式查询数据:

NSArray *tdNodes = PerformHTMLXPathQuery(self.receivedData, @"//td[@class='col-name']/a/span");

总结:

  1. 将 libxml2 添加到您的项目中,以下是 XCode4 的一些快速说明: http://cmar.me/2011/04/20/adding-libxml2-to-an-xcode-4-project/

  2. 获取 XPathQuery.h/.m

  3. 使用 XPath 语句查询 html 文档。

关于iphone - 在 iOS 中解析 XML/'screen scraping' 的最佳方法是什么? UIWebview 还是 NSXMLParser?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3541615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com