我是iOS开发的新手,我正在尝试编写一个可以抓取网站(HTML)的应用程序。刮刮谷歌只是一个例子 - 我计划抓一些更复杂的东西......
我的代码如下:
#import "KppleViewController.h"
#import "TFHpple.h"
@implementation KppleViewController
@synthesize theButton;
- (IBAction)buttonPressed:(UIButton *)sender {
NSLog(@"button Pressed");
NSURL *url = [NSURL URLWithString: @"http://www.google.com"];
NSData *htmlData = [NSData dataWithContentsOfURL: url];
TFHpple *xpathParse = [[TFHpple alloc] initWithHTMLData:htmlData];
NSArray *elements = [xpathParse searchWithXPathQuery:@"//h3"];
TFHppleElement *element = [elements objectAtIndex:0];
NSString *h3Tag = [element content];
NSLog(@"x",h3Tag);
}
问题是当我尝试写入控制台(通过NSLog
)以查看是否有效时,我收到错误。我得到的错误是"格式字符串"
我在互联网上搜索过,但无济于事。如果我注释掉NSLog以查看我之前的代码是否正确,我会在声明但未使用的NSlog(h3Tag)上方的变量上收到错误。
非常感谢任何帮助......
我也对任何其他抓取HTML的方法开放......
答案 0 :(得分:6)
你对这一行感到困惑:
NSLog(@"x",h3Tag);
所有这一行都记录了字符串x
。第二个参数完全未使用。你想要的是这样的:
NSLog(@"%@", h3Tag);
或者可能更具描述性:
NSLog(@"h3Tag: %@", h3Tag);
格式字符串中的标记%@
表示这是打印下一个参数的位置。您可能希望阅读String Format Specifiers或Formatting String Objects一般。
答案 1 :(得分:0)
使用
NSLog(@"%@", h3Tag);
或
NSLog(h3Tag);
答案 2 :(得分:0)
NSLog(@"x = %@",h3Tag);
Above line prints the value of h3Tag.
For more help about NSLog refer link: [http://www.cocoadev.com/index.pl?NSLog]