Как разобрать текст сайта и отображение в представлении - PullRequest
0 голосов
/ 03 марта 2012

Я хотел бы загрузить веб-страницу и проанализировать только текст статьи и заголовок, а затем отобразить это в виде. Можно ли сделать это без использования UIWebVIew? Если это возможно, я бы предпочел использовать только встроенные функции и никаких плагинов. Спасибо.

Ответы [ 2 ]

5 голосов
/ 03 марта 2012

Вы можете создать запрос HTTP для получения строки содержимого html, а затем проанализировать строку.Например, чтобы получить заголовок html:

NSError *error = nil;
NSString *html = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.google.com"] encoding:NSASCIIStringEncoding error:&error];
if(html) {
    NSLog(@"HTML %@", html);

    NSRange r = [html rangeOfString:@"<title>"];
    if (r.location != NSNotFound) {
        NSRange r1 = [html rangeOfString:@"</title>"];
        if (r1.location != NSNotFound) {
            if (r1.location > r.location) {
                NSString *title = [html substringWithRange:NSMakeRange(NSMaxRange(r), r1.location - NSMaxRange(r))];
                NSLog(@"title %@", title);
            }
        }
    }
} else {
    NSLog(@"Error %@", error);
}
3 голосов
/ 11 августа 2012

Если вам нужно проанализировать веб-страницу и получить то, что имеет отношение к «статье» и ее названию, без всего остального, вам нужно что-то вроде Diffbot для получения заголовка статьи, автора,текст и контент-относительное изображение (я).Diffbot оплачивается за приложения, которые совершают более 10.000 вызовов API в месяц (что не так много).Приложения типа Readability , Pocket (ранее Read It Later) и Instapaper, которые позволяют своим пользователям сохранять проанализированные статьи для последующего чтения на нескольких устройствах, имеют общедоступные API.Однако Pocket не позволяет использовать его API только для анализа;Читаемость предположительно обеспечивает доступ к его анализатору («Content API») по запросу (я не сделал этот запрос, хотя мне может понадобиться в будущем);и Instapaper, который, в отличие от двух других, которые я никогда не использовал в качестве приложения, на самом деле не дает понять, разрешает ли он такое использование.

Я надеюсь, что мой ответ, хотя и с опозданием на много месяцев, можетвсе еще быть полезным;пожалуйста, кратко ответьте, какое решение вы нашли (если у вас есть).

PS: Очевидно, что как новый пользователь мне разрешено давать вам только две ссылки;Я удалил все последующие, но первые два наиболее полезны.

...