2011-05-18 131 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