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

标签 javascript html ios objective-c

出于某种原因,我需要解析网站的 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/

相关文章:

javascript - Vue.js:未重新渲染子组件

javascript - 带有类名和值的目标输入

Javascript - 防止右键单击滚动条以查看页面源代码

ios - Crashlytics:存档分发错误:-3

ios - 来自 plist iOS 的数组

ios - uitableview 对象数组作为数据源

javascript - 使用 javascript 将图案应用到 3D 图像

javascript - 使用 javascript 聚焦并选择另一个输入文本字段?

javascript - 2 分钟问题 - HTML/CSS If div within div expands expand parent div

javascript - 在页面加载时平滑滚动到所需的部分