Разбор HTML в Objective-C - PullRequest
0 голосов
/ 01 декабря 2010

Hello!

Это для iphone

Вот чего я пытаюсь достичь:

Этот веб-сайт расширяет URL-адреса, например bit.ly/miniscurl, у создателя есть API, который говорит, что все, что вам нужно сделать, это перейти на этот веб-сайт:

http://expandurl.appspot.com/expand?url=YOURURL

поэтому, когда я положил:

http://expandurl.appspot.com/expand?url=bit.ly/miniscurl

возвращает новый веб-сайт с этой информацией:

{
    "status": "OK", 
    "end_url": "http:\/\/miniscurl.dafk.net", 
    "redirects": 1, 
    "urls": ["http:\/\/bit.ly\/miniscurl", "http:\/\/miniscurl.dafk.net"], 
    "start_url": "http:\/\/bit.ly\/miniscurl"
}

И это здорово! но как мне получить эту информацию в строку NSString, а затем искать в ней различные теги. так что наконец получил это:

NSString *status = OK;
NSString *end_url = http:\/\/miniscurl.dafk.net";
etc...

Также был бы великолепен NSArray, содержащий все перенаправления (если их больше одного)!

Вывод:

Мне нужно:

  • быстрый и простой способ получения исходного кода HTML с веб-сайта.
  • быстрый и простой способ поиска по NSString и разрезания его на разные части.

Спасибо!

С наилучшими пожеланиями Kristian

1 Ответ

1 голос
/ 01 декабря 2010

Для получения данных с HTTP-сервера вы можете использовать [NSData dataWithContentsOfURL:].

Для анализа данных, в данном случае это JSON-данные, вы можете использовать простой анализатор JSON, например TouchJSON .

Вот пример кода, который я написал для одного из моих приложений:

NSURL *url = [NSURL URLWithString:@"http://server.com/data.json"];
NSData *rawJsonData = [NSData dataWithContentsOfURL:url];

CJSONDeserializer *parser = [CJSONDeserializer new];
NSError *error;
NSDictionary *jsonDictionary = [parser deserializeAsDictionary:rawJsonData 
                                                         error:&error];

[parser release];

Надеюсь, это поможет!

Кроме того, похоже, что вы новичок здесь. Пожалуйста, отметьте ответ, который вам больше всего помогает, нажав «√» слева, спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...