2012-03-03 69 views
1

我想加載網頁並僅解析文章文本和標題,然後在視圖中顯示此內容。有沒有可能做到這一點,而不使用UIWebVIew?如果可能的話,我寧願只使用內置函數而不使用插件。 謝謝。如何解析網站文本並在視圖中顯示

回答

5

您可以創建一個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

如果你需要分析一個網頁,而得到的是有關作爲「物品」,而它的標題,沒有所有其他的東西,你需要的東西如Diffbot來檢索文章標題,作者,文本和內容相關圖像。 Diffbot支付的應用程序每個月可以創建超過10,000個API調用(這並不算多)。諸如Readability,Pocket(以前稱爲Read It Later)和Instapaper等應用程序允許其用戶保存經過分析的文章以便在多個設備上進行後續閱讀,其中包含公共API。 Pocket不允許它的API僅用於解析,但是;可讀性據稱可以根據請求提供對其解析器(「Content API」)的訪問權限(我還沒有提出該請求,儘管將來我可能需要);和Instapaper,其他兩個不同,我從來沒有用作應用程序,但它沒有真正清楚它是否允許這種用途。

我希望我的回答儘管遲了很多個月,但仍然有用;請簡要回復您找到的解決方案(如果有的話)。

P.S .:顯然,作爲一個新用戶,我只允許給你兩個鏈接;我已經刪除了所有後來的,但前兩個是最有用的。

+0

您的鏈接是OP特別提到的他不感興趣的內容。 – 2012-09-28 06:51:07

相關問題