ios从网络获取页面源?
我正在开发一个应用程序并尝试显示网页的一部分。
我的想法是,首先获取页面源代码,然后解析它!
我已经找到了一个有用的 HTML 解析器,但仍然在如何获取页面源代码方面苦苦挣扎?
我发现的只是关于 UIWebview 的。像这样的东西:
uiwebview = [[UIWebView loadRequest:[NSURLRequest requestWithURL:url]];
I am working on a app and try to display part of a web page.
My idea is first, get page source then parse it!
I already found a useful HTML parser for it but still struggling in how to get page source?
All I found is about UIWebview. Something like:
uiwebview = [[UIWebView loadRequest:[NSURLRequest requestWithURL:url]];
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用
Use
在主线程中使用
+stringWithContentsOfURL:
的缺点是,当请求处于活动状态时,您的 UI 将被阻塞。当用户处于高延迟网络上、服务器响应缓慢或者请求最终超时时,这会变得尤其成问题。在最后一种情况下,用户可能会看到 UI 块很长时间。+stringWithContentsOfURL:
方法还缺少一种在服务器未返回 200 状态时向您提供错误信息的方法。要异步执行请求而不阻塞 UI,请使用
NSURLConnection
并获取委托中的数据:然后在连接完成时开始解析:
URL 加载系统编程指南将帮助您入门。
The disadvantage to using
+stringWithContentsOfURL:
in the main thread is that your UI will block while the request is active. This becomes especially problematic when the user is on a network with high latency, when the server is slow to respond, or if the request ends up timing out. In the last case, the user may see the UI block for a very long time.The
+stringWithContentsOfURL:
method also lacks a way to provide you with error information in the event the server does not return a 200 status.To perform the request asynchronously without blocking the UI, use
NSURLConnection
and grab the data in the delegate:And then kick off parsing when the connection finishes:
The URL Loading System Programming Guide will get you started.