如何使用Objective-C解析需要JavaScript的HTML

时间:2014-11-28 14:57:21

标签: javascript html ios objective-c xcode

出于某种原因,我需要解析网站的HTML。

但该网站的内容被JavaScript阻止。

当我NSLog字符串时,HTML的内容不是我想要的。

错误的HTML

Adob​​e Color CC

  • 禁用JavaScript

    Adob​​e Color CC需要使用JavaScript才能正确加载。 请在浏览器中启用JavaScript并重新加载页面。

  • JavaScriptestdésactivé

    Pour pouvoir se充电器修正,Adobe Color CC需要JavaScript。 Veuillez activer JavaScript dans votre navigateur et recharger la page。

  • JavaScript deaktiviert

    JavaScript ist erforderlich,damit Adob​​e ColorCCordnungsgemäßgeladenwird。 Aktivieren Sie JavaScript浏览器和浏览器Sie die Seite neu。

  • JavaScriptが无效です

    Adob​​e Color CCで正しく読み込みを行うには,JavaScriptが必须です。ご使用のブラウザーでJavaScriptを有效にして,ページを再読み込みしてください.`

    获取内容方法

    NSURL *htmlUrl = [NSURL URLWithString:@"https://color.adobe.com/explore/newest/?time=all"];
    
    NSStringEncoding htmlEncoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingUTF8);
    
    NSString *htmlString = [NSString stringWithContentsOfURL:htmlUrl encoding:htmlEncoding error:nil];
    
    NSLog(@"%@",htmlString);
    

    我该怎么办?

    任何帮助将不胜感激!

  • 1 个答案:

    答案 0 :(得分:0)

    stringWithContentsOfURL实际上不是为此而设计的。它意味着接收数据,例如静态的JSON或XML。

    我建议使用其他网络类,这将提供更多的控制以及使其异步的能力。 Making stringWithContentsOfURL asynchronous - Is it safe?的答案应该提供更多细节。