2011-05-18 91 views
1

我正在開發一個應用程序並嘗試顯示網頁的一部分。ios從網頁獲取頁面源代碼?

我的想法是第一個,得到頁面源,然後解析它!

我已經找到了一個有用的HTML解析器,但仍然在如何獲取頁面源?

我發現的所有內容都是關於UIWebview的。喜歡的東西:

uiwebview = [[UIWebView loadRequest:[NSURLRequest requestWithURL:url]]; 
+0

你能提一下什麼是有用的HTML解析器? :)我也需要一個... – 2011-05-19 12:55:05

回答

9

使用

NSString *string = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.google.com"] encoding:NSUTF8StringEncoding error:nil]; 
+0

你錯過了google.com之前的http://。 – 2011-05-18 15:46:51

+0

謝謝迪帕克,我明白了! – Jerry 2011-05-18 15:49:06

6

在主線程中使用+stringWithContentsOfURL:缺點是你的UI將阻止而請求處於激活狀態。當用戶在網絡上出現高延遲,服務器響應緩慢或者請求結束超時時,這會變得特別成問題。在最後一種情況下,用戶可能會很長時間看到UI塊。

+stringWithContentsOfURL:方法也缺少一種方法來在服務器不返回200狀態的情況下爲您提供錯誤信息。

要在代表異步地執行的請求,而不阻塞UI,使用NSURLConnection和獲取數據:

- (void)connection: (NSURLConnection *)connection didReceiveData: (NSData *)data 
{ 
    // receivedData is an NSMutableData object 
    [ receivedData appendData: data ]; 
} 

然後開球解析當連接完成:

- (void)connectionDidFinishLoading: (NSURLConnection *)connection 
{ 
    [ self parseHTMLData: receivedData ]; 
} 

URL Loading System Programming Guide會讓你開始。

+0

謝謝更多的緊張,我會給它一個鏡頭! – Jerry 2011-05-18 15:52:36