ios从网上获取页面源?

时间:2011-05-18 15:17:57

标签: ios uiwebview

我正在开发一款应用并尝试显示网页的一部分。

我的想法是第一个,获取页面源然后解析它!

我已经为它找到了一个有用的HTML解析器,但仍然在如何获取页面源方面苦苦挣扎?

我发现的只是UIWebview。类似的东西:

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

2 个答案:

答案 0 :(得分:9)

使用

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

答案 1 :(得分:6)

在主线程中使用+stringWithContentsOfURL:的缺点是,在请求处于活动状态时,您的UI将被阻止。当用户在具有高延迟的网络上,当服务器响应缓慢或者请求最终超时时,这变得特别成问题。在最后一种情况下,用户可能会在很长一段时间内看到UI块。

如果服务器未返回200状态,+stringWithContentsOfURL:方法也缺少为您提供错误信息的方法。

要在不阻止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会让你入门。