Ios 提取特定Div类中的第一个URL

Ios 提取特定Div类中的第一个URL,ios,html,nsstring,extract,Ios,Html,Nsstring,Extract,我正在考虑建立一个应用程序,将显示月刊。杂志没有XML,他们只是每月更改PDF的标题标题和URL。这在源代码中总是存储在同一个位置,因此我正在查找 div class=条目clearfix post/div 标记,然后提取第一个URL。我以前做过XML解析,但从未做过HTML。我的最佳选择是什么 更新: 只有在源代码中的某一点上,页面才会显示要下载PDF,请单击此处。因此,我设置了以下扫描仪: NSURL *url = [NSURL URLWithString:@"http://www.thej

我正在考虑建立一个应用程序,将显示月刊。杂志没有XML,他们只是每月更改PDF的标题标题和URL。这在源代码中总是存储在同一个位置,因此我正在查找

div class=条目clearfix post/div

标记,然后提取第一个URL。我以前做过XML解析,但从未做过HTML。我的最佳选择是什么

更新:

只有在源代码中的某一点上,页面才会显示
要下载PDF,请单击此处
。因此,我设置了以下扫描仪:

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];
NSURL*url=[NSURL URLWithString:@”http://www.thejenkinsinstitute.com/Journal/"];
NSString*content=[NSString stringWithContentsOfURL:url];
NSString*aString=内容;
NSMUTABLEARRY*子字符串=[NSMUTABLEARRY new];
NSScanner*scanner=[NSScanner scannerWithString:aString];

[scanner ScanupString:@“为了下载PDF,

\n我做了类似的事情,我建立了一个小的web服务(API,基本上是一个简单的Ruby应用程序,它废弃了我需要的html,并以REST方式返回它。web服务/API是一个好主意,因为如果html中有任何更改(如id的元素更改),您不必更新iOS应用程序,只需更改正在解析的节点的路径。

HTML抓取是一场噩梦,也是维护工作的可靠来源。