【问题标题】:Get all html data from UIWebView从 UIWebView 获取所有 html 数据
【发布时间】:2014-10-21 19:01:16
【问题描述】:

我正在使用 Xcode 6 编程并使用 Objective-c。

我想从页面加载 html 代码。 这个问题有更多答案,但是当我尝试它们时,它们只会加载页面的一部分。

我已经尝试了以下问题的最佳答案:Reading HTML content from a UIWebView

当我尝试这个时,我只得到 HTML 字符串的一部分。我什至尝试过:

NSString *html = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.outerHTML"];

当我在我的电脑上查看 HTML 代码时,我打开 Firefox 并按 F12。当我这样做时,我会从 UIWebView 获得更多的 HTML 代码。

UIWebview 甚至 Objective-c 中是否有任何选项可以获取所有 HTML 代码?

是否可以使用 Javascript 和 stringByEvaluatingJavaScriptFromString: 从 HTML 文件中提取邮件地址?

【问题讨论】:

    标签: javascript html objective-c uiwebview


    【解决方案1】:

    您可以通过对 html 的 url 发出 get 请求来获取网页的 html,并且可以使用以下代码在 NSString 对象中获取 html。你甚至不需要 UIWebview 来访问网页的 html 内容。

    NSURLResponse * response = nil;
    NSError * error = nil;
    
    NSURLRequest* urlRequest = [NSURLRequest
                                requestWithURL:[NSURL URLWithString:@"http://www.emdrassociation.org.uk/site.php/profile/emdr/alison_russell.html"]
                                                   cachePolicy:NSURLRequestReloadIgnoringCacheData
                                               timeoutInterval:30.0];
    
    NSData* data = [NSURLConnection sendSynchronousRequest:urlRequest  returningResponse:&response error:&error];
    NSString *htmlString = [NSString stringWithUTF8String:[data bytes]];
    

    【讨论】:

    • 我发布的链接中也提到了这个选项。当我尝试这个时,我得到了相同的输出,但我错过了很多 html。
    • 你能给我一个示例 url 来测试吗,因为我用 'google.com' 测试过并且它有效
    • 我将页面源从 google chrome 和 nsstring 内容复制到差异检查器,它“仅”在整个 html 中发现 2 个差异,这表明 html 是为每个请求唯一生成的,您可以看到屏幕截图@ 987654323@alpercinar.com/ss/stackoverflow/ss2.png
    • 你用上面的代码得到了输出吗?很奇怪...你能发布你的项目吗?
    猜你喜欢
    • 2021-05-10
    • 1970-01-01
    • 2017-01-15
    • 1970-01-01
    • 2022-01-23
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多