我正在尝试使用objective-c从网站提取数据。这对我来说都很新鲜,所以我做了一些研究。我现在知道的是我需要使用xpath,而我还有另一个用于iPhone的hpple包装器。我已经把它运行在我的项目中了。
我对从网站检索信息的方式感到困惑。显然我要在这行代码中使用正则表达式:
NSArray * a = [doc search:@"//a[@class='sponsor']"];
这只是一个例子。是搜索中的东西:@“....”正则表达式?如果是这样,我想我可以开发出我的程序解析网站所需的数百种模式(我需要大量数据),但有更好的方法吗?我很失落。任何帮助表示赞赏。
答案 0 :(得分:1)
参数是XPath,而不是正则表达式。这是一个细分:
//
是缩写,意为“所有后代”a
表示“节点类型为'a'的所有子nodes”(在HTML中,即anchors)[...]
包含predicate,精炼哪个a
匹配
@
是属性节点的缩写@class
表示名为“class”的属性@class='sponsor'
表示类属性等于“赞助商”。请注意,这与具有包含“赞助商”的类的节点不匹配,例如<a class="big sponsor" ...>
;该类必须相等。总之,我们有“'a'节点从根下降,类等于'赞助商'”。
答案 1 :(得分:0)
这是一个XPath表达式,而不是正则表达式。 W3C在这里有一个XPath参考:http://www.w3.org/TR/xpath/。基本上你正在寻找&lt; a&gt; “赞助商”一词的元素。
请注意,这是件好事!正则表达式不适合解析HTML。