This question already has answers here:
Blocked when trying to get the content of HTML
(2个答案)
5年前关闭。
由于某些原因,我需要解析网站的HTML。
但是该网站的内容已被JavaScript阻止。
当我NSLog字符串时,HTML的内容不是我想要的。
错误的HTML
获取内容方法
我该怎么办?
(2个答案)
5年前关闭。
由于某些原因,我需要解析网站的HTML。
但是该网站的内容已被JavaScript阻止。
当我NSLog字符串时,HTML的内容不是我想要的。
错误的HTML
</script><noscript><div class="error-container"><div class="wrapper"><header><a href="/"><img src="/resource/img/logo.png"><div class="title">Adobe Color CC</div></a></header><section><ul id="no-js" class="wrap"><li><h1>JavaScript Disabled</h1><p>Adobe Color CC requires JavaScript in order to load properly. **Please enable JavaScript in your browser and reload the page.**</p></li><li><h1>JavaScript est désactivé</h1><p>Pour pouvoir se charger correctement, Adobe Color CC requiert JavaScript. Veuillez activer JavaScript dans votre navigateur et recharger la page.</p></li><li><h1>JavaScript deaktiviert</h1><p>JavaScript ist erforderlich, damit Adobe Color CC ordnungsgemäß geladen wird. Aktivieren Sie JavaScript im Browser und laden Sie die Seite neu.</p></li><li><h1>JavaScript が無効です</h1><p>Adobe 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);
我该怎么办?
最佳答案
stringWithContentsOfURL
确实不是为此设计的。它旨在接收静态的数据,例如JSON或XML。
我建议改用其他网络类,这将提供更多的控制以及使其异步的能力。 Making stringWithContentsOfURL asynchronous - Is it safe?的答案应提供更多详细信息。
关于javascript - 如何使用Objective-C解析需要JavaScript的HTML ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27191282/