我正在制作一个应用程序,它会给我最新消息和图像。我通过制作这样的扫描仪来实现文本位。
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
/* set headers, etc. on request if needed */
[request setURL:[NSURL URLWithString:@"http://stackoverflow.com/questions/22671347/nsuinteger-should-not-be-used-in-format-strings"]];
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:NULL error:NULL];
NSString *html = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSScanner *scanner = [NSScanner scannerWithString:html];
NSString *token = nil;
[scanner scanUpToString:@"<p>" intoString:NULL];
[scanner scanUpToString:@"</p>" intoString:&token];
int length = 3;
token = [token substringFromIndex:length];
textView.text = token;
现在我想知道我是否可以使用相同类型的代码来扫描网站以查找第一个图像并将其设置为图像视图。此外,它不必是相同类型的代码,发布您所知道的任何方法。
摘要是。
想要一段扫描网页的代码,拿起第一张图片并将其放在图片视图中。
感谢那些花时间帮助我的人。
再次感谢!!! BYE !!!
答案 0 :(得分:2)
NSScanner它不是一个HTML解析器,仅用于扫描来自NSString对象的值。如果你进行奇怪的扫描,你可能会侥幸逃脱它,但它似乎不是......
CORRECT方法是使用Xcode中包含的Libxml2 library,它只写为C,没有任何Objective-C / Swift包装器。 Libxml2是为Gnome项目开发的XML C解析器和工具包。或者,我建议使用HTMLReader等开源项目。它是一个在Objective-C和Foundation中使用CSS选择器的HTML解析器。它像浏览器一样解析HTML,全部用Objective-c编写。
示例(使用HTMLReader):
HTMLDocument *document = [HTMLDocument documentWithString:html]; // get your html string
NSLog(@"IMG: %@", [document firstNodeMatchingSelector:@"img"].textContent); // => image returned here
要查找图像,只需将标记更改为&lt; img&gt;和你的设置!!
如果您使用Libxml2查看HTMLparser.c header file来解析和检索HTML ltags