gpt4 book ai didi

html - 从网站提取的 UIImageView 中未显示图像

转载 作者:行者123 更新时间:2023-11-29 03:25:41 24 4
gpt4 key购买 nike

我有一个应用程序正在拉取图像并将其显示在 UIImageView 中。我知道我的代码正在用于提取图像,所以我认为它必须对 HTML 做一些事情。我三次检查了 xcode 中的所有连接,并且所有连接都已连接。如果您能告诉我为什么图像没有被拉出,那就太好了!我从this拉出网站,如果您想自己查看所有 HTML,但我想要“立即”图像。

enter image description here

提取图像的代码:

- (void)viewDidLoad {
[super viewDidLoad];

self.urlForFeelsLike = @"http://www.weather.com/weather/today/CAXX0518:1:CA";
NSURL *myURL2 = [NSURL URLWithString: [self.urlForFeelsLike stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSURLRequest *request2 = [NSURLRequest requestWithURL:myURL2];
[webViewForFeelLike loadRequest:request2];
webViewForFeelLike.delegate = self;

timer1 = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(loadImageForCurrentCondition) userInfo:nil repeats:YES];
}

-(void)loadImageForCurrentCondition {

js = @"document.getElementsByClassName('wx-weather-icon')[0].src;";
imgLink = [webViewForFeelLike stringByEvaluatingJavaScriptFromString:js];
imgURL = [NSURL URLWithString:imgLink];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{

data = [NSData dataWithContentsOfURL:imgURL];
[self performSelectorOnMainThread:@selector(setImageViewImage) withObject:data waitUntilDone:YES];
});
}

- (void)setImageViewImage {

imgData = [NSData dataWithContentsOfURL:imgURL];
image = [UIImage imageWithData:imgData];

dispatch_async(dispatch_get_main_queue(),^{
if (image == nil) {


}
else {

[currentConditionImageView setImage:image];

}

});

NSLog(@"Weather image reloaded");
}

我从中提取的 HTML 行:

<div class="wx-data-part wx-first"><img src="http://s.imwx.com/v.20131006.214956/img/wxicon/120/26.png" height="120" width="120" alt="Cloudy" class="wx-weather-icon">

最佳答案

你的 JavaScript 是错误的。

document.getElementsByClassName('wx-weather-icon') //Always returns an array, so you want:
document.getElementsByClassName('wx-weather-icon')[0].src;

另外一点:

dcorbatta 也在下面,您在这里错误地使用了 UIWebView。另外,如果您使用 UIWebView 只是为了获取该图像,那么您的工作方式会非常缓慢且不必要的密集。 UIWebView 花费了大量的内存渲染和解析(它是为了浏览),而更简单的东西可以更快、更有效地完成同样的任务。我建议将页面作为 HTML 字符串加载,然后解析该字符串。

关于html - 从网站提取的 UIImageView 中未显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20483687/

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