0

私は iOS 開発が初めてで、Web サイト (HTML) をスクレイピングできるアプリを作成しようとしています。Google のスクレイピングは単なる例です。もう少し複雑なものをスクレイピングする予定です...

私のコードは次のとおりです。

#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をスクレイピングする他の方法にもオープンです...

4

3 に答える 3

6

あなたはこの行に混乱しています:

NSLog(@"x",h3Tag);

この行が行うことは、文字列をログに記録することだけxです。2 番目の引数は完全に使用されません。あなたが望むのは次のようなものです:

NSLog(@"%@", h3Tag);

またはおそらくもう少し説明的です:

NSLog(@"h3Tag: %@", h3Tag);

%@フォーマット文字列内のトークンは、次の引数が出力される場所であることを示しています。文字列フォーマット指定子または一般的な文字列オブジェクトのフォーマットについて読みたいと思うかもしれません。

于 2011-12-14T02:07:45.137 に答える
0

使用する

NSLog(@"%@", h3Tag);

また

NSLog(h3Tag);
于 2011-12-14T04:12:37.910 に答える
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]
于 2011-12-14T05:00:25.513 に答える