我需要处理已经损坏的脚本文件的html文件,这些脚本文件是通过标记添加到它的。 我打算通过phantomjs删除网页中的所有脚本标签。 但是在通过webpage.open()打开网页时,会抛出phantomjs解析错误,因为它无法解析脚本标记中的JS内容。 这是一个例子:
<html>
<head>
<script>
corrupted JS
if(dadadd
;
</script>
<body>
some content
</body>
</html>
有人可以帮我建议使用phantomjs清理此网页的正确方法吗?
答案 0 :(得分:1)
这不是(轻松)可能。您可以下载(不是通过打开页面,而是在page.evaluate()
中发出Ajax请求)静态html,然后根据您的需要进行更改,然后将其分配给page.content
。
这仍然可能无效,因为只要您将其分配给page.content
,就会说PhantomJS应该将此来源解释为来自未知域的页面(about:blank)。由于页面源包含所有类型的没有域名的链接/脚本/样式表,因此您还必须更改这些页面,以便页面成功加载各种资源。
使用自定义规则在PhantomJS和互联网之间建立代理可能更容易,可根据需要调整页面来源。