在某个Div类中提取第一个URL

时间:2012-11-23 21:09:59

标签: ios html nsstring extract

我正在构建一个可以显示月刊的应用程序。日志没有XML,他们每个月只更改PDF的标题标题和URL。这总是存储在源代码中的相同位置,所以我正在寻找

中的所有文本
  

div class = entry clearfix post / div

标记,然后提取第一个URL。我以前曾经解析过XML,但从来都不是HTML。对我来说最好的选择是什么?

更新:

只有在源代码中的某一点,该页面才会显示To Download the PDF, click here。所以,我设置了以下扫描仪:

NSURL *url = [NSURL URLWithString:@"http://www.thejenkinsinstitute.com/Journal/"];
NSString *content = [NSString stringWithContentsOfURL:url];
NSString * aString = content;
NSMutableArray *substrings = [NSMutableArray new];
NSScanner *scanner = [NSScanner scannerWithString:aString];
[scanner scanUpToString:@"<p>To Download the PDF, <a href=\"http://michaelwhitworth.com/wp-content/HE22.pdf\">" intoString:nil]; // Scan all characters before #
while(![scanner isAtEnd]) {
    NSString *substring = nil;
    [scanner scanString:@"<p>To Download the PDF, <a href=\"" intoString:nil]; // Scan the # character
    if([scanner scanUpToString:@"\"" intoString:&substring]) {
        // If the space immediately followed the #, this will be skipped
        [substrings addObject:substring];
    }
    [scanner scanUpToString:@"#" intoString:nil]; // Scan all characters before next #
}
NSLog(@"Here is the Substring%@", substrings);
// do something with substrings
[substrings release];

在控制台中,要返回的第一件事是PDF的URL,但它包含更多内容。这是一个简短的摘录。

"2012-11-23 15:33:36.383 Jenkins[8306:c07] Here is the Substring( "http://michaelwhitworth.com/wp-content/HE22.pdf", "#8220;As the Bible School Goes So Goes the Congregation&#8221; by Ira North</a></p>\n<p style=","

我做错了什么才能让它不再给我这个URL,仅此而已?

1 个答案:

答案 0 :(得分:0)

我做了类似的事情,我提出了一个小型的Web服务(API基本上是一个简单的Ruby应用程序,它正在废弃我需要的html,并以REST方式返回它.Web服务/ API是一个好主意因为如果HTML中有任何变化(比如id的元素更改),则不必更新iOS应用程序以仅更改正在解析的节点的路径。