ios - 如何获取网站的 HTML 内容

标签 ios uiwebview html-parsing xcode4.3

viewDidLoad , 我正在使用 NSURLRequestNSURLConnection :

NSURLRequest *site_request = 
    [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com/"] 
                     cachePolicy:NSURLRequestUseProtocolCachePolicy 
                 timeoutInterval:10.0];

NSURLConnection *site_connection = 
    [[NSURLConnection alloc] initWithRequest:site_request delegate:self];

然后我用
-(void)connection:(NSURLConnection *)site_connection didReceiveData:(NSData *)data 
{    
    site_response = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
}

我在 site_response 中有整个 HTML .

我想创建一个不可见的UIWebView这将从NSURLRequest“打开”页面为了使用 JavaScript 来获取这样的内容:
NSString *myText = [my_webView stringByEvaluatingJavaScriptFromString:
                       @"document.documentElement......"];

在我的 .h 中,我有:
UIWebView *my_webview;
@property (nonatomic, retain) UIWebView *my_webview;

在我的 .m 中,我有:
@synthesize torrents_webview;

我的 viewDidLoadNSURLRequest 之后拥有
[my_webview loadRequest:site_request];

我用
-(void)webViewDidFinishLoad:(UIWebView *)webView 
{
    //an alertview here
}

为了确保它有效。但什么也没有发生。它不提供警报 View 。

我究竟做错了什么?

最佳答案

webViewDidFinishLoad:是 UIWebView 委托(delegate)的一个方法。您没有在显示的代码中的任何位置设置委托(delegate)。

@interface YourClass : UIViewController <UIWebViewDelegate>

...

- (void)loadView
{
    self.webView.delegate = self;
}


...
- (void)dealloc
{
    self.webView.delegate = nil;
}

此外,如果您使用 NSURLRequest,您将再次获得该页面。但是没有必要使用 NSURLConnection,直接使用 NSURLRequest 加载 UIWebVIew 即可。

或者,如果您必须使用 NSURLConnection,则在文件下载后将其保存到磁盘并使用 LoadHTMLString 加载内容。

关于ios - 如何获取网站的 HTML 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10924696/

相关文章:

ios - 自定义运算符来简化 If-Let

ios - 强制 iOS UIWebView 为 1024px,而不是 1027px

perl - 解析 HTML 以获取两个集合元素之间的元素

php - 从 JSON 请求中移除 DOM 标签

ios - 查询核心数据中所有实体的快速简便方法

ios - cellForRowAtIndexPath 中对象的潜在泄漏

ios - 使用 UIWebView 快速滚动

ios - UINavigationBar setHidden 之前的 WebView LoadRequest 为 YES

react-native - 在 React Native 中自动登录、导航和解析网页

java - 如何使用Java读取电子邮件中的 Logo 和图像,其中电子邮件的内容是html/纯文本