根据casperjs中的mimetype下载文件

时间:2015-03-02 06:51:55

标签: phantomjs mime-types casperjs slimerjs

在网络抓取练习中,我需要点击链接,让他们渲染内容,如果是HTML,否则下载。如何使用casperjs或幻像/ slimerjs之上的其他工具来实现这一目标?

据我了解,幻像/ slimerjs缺少支持下载的API。 casperjs有一个下载API,但我无法看到如何检查mime类型,并在下载其他内容时让html呈现。

1 个答案:

答案 0 :(得分:2)

在PhantomJS和SlimerJS中,您都可以为每个收到的回复注册一个监听器:

page.onResourceReceived = function(response) {
...
}

但是,只有在SlimerJS中才定义了response.body。通过使用此功能,您可以保存文件。 this blog post中有一个完整的例子。 (如该示例所示,您必须设置page.captureContent以涵盖您想要数据的文件。)

在PhantomJS 1.9.x中无法做到这一点(我相信PhantomJS 2.x仍有同样的问题,但我还没有亲自证实这一点。)

你问题的另一部分是关于根据mime类型决定要保存的内容。 full list of available fields显示您可以使用response.contentType

相关问题