0

这是我试图从中检索图像的 HTML 部分。

div class="image">
              <a href="http://www.web.com/EN/105/News/10228/"><img src="/images/cache/360x295/crop/images%7Ccms-image-000007796.jpg" width="360" height="295" alt=" (photo: )" /></a>
                         </div>

我可以分别获取“href”和“img src”值,但它们都不是可以让我访问图像的链接。有效链接将http://www.web.com加上 img src 值。我想将字符串:http://www.web.com附加到 img src 但无法弄清楚如何做到这一点,并且不确定这是正确的方法。所以,我想要得到的是http://www.web.com/images/cache/360x295/crop/images%7Ccms-image-000007796.jpg

这是我用来解析 HTML 数据的代码:

-(void) fethchData

{
    NSError *error = nil;
    NSURL *url=[[NSURL alloc] initWithString:@"http://www.web.com/"];
    NSString *strin=[[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];

    HTMLParser *parser = [[HTMLParser alloc] initWithString:strin error:&error];

    if (error) {
        NSLog(@"Error: %@", error);
        return;
    }

HTMLNode *bodyNode = [parser body];

NSArray *imageNodes = [bodyNode findChildTags:@"div"];

    for (HTMLNode *imageNode in imageNodes) {
        if ([[imageNode getAttributeNamed:@"class"] isEqualToString:@"image"]) {
            HTMLNode *aNode = [imageNode firstChild];
            HTMLNode *imgNode = [aNode nextSibling];
            HTMLNode *imNode = [imgNode firstChild];
             NSURL* imageURL = [NSURL URLWithString:[imNode getAttributeNamed:@"src"] relativeToURL:url];
        NSLog(@"%@", imageURL);

        } 
    }



}

这是输出:/images/cache/360x295/crop/images%7Ccms-image-000007653.jpg -- http://www.web.ge/

我需要先看看http://www.web.ge/,然后再看看其余的。

4

1 回答 1

0

采用:

NSURL* imageURL = [NSURL URLWithString:[imNode getAttributeNamed:@"src"] relativeToURL:theURLFromWhichYouDownloadedThisHTML];

更新:如果你觉得你必须有一个绝对 URL 对象,你可以按照上面的:

imageURL = [imageURL absoluteURL];
于 2012-06-09T18:28:30.427 回答