Загрузите файл в зависимости от mimetype в casperjs
В упражнении по очистке веб-страниц мне нужно нажимать на ссылки, разрешать им отображать содержимое, если оно является HTML, и загружать его в противном случае. Как мне сделать это с помощью casperjs или других инструментов поверх фантома / slimerjs?
Насколько я понимаю, фантомам / slimerjs не хватает API для поддержки загрузки. У casperjs есть API для загрузки, но я не могу понять, как проверить тип mime и позволить рендерингу html при загрузке другого контента.
1 ответ
И в PhantomJS, и в SlimerJS вы можете зарегистрировать слушателя для каждого полученного ответа:
page.onResourceReceived = function(response) {
...
}
Однако только в SlimerJS определен response.body. Используя это, вы можете сохранить файл. В этом посте есть полный пример. (Как показывает этот пример, вы должны установить page.captureContent
чтобы покрыть файлы, для которых вы хотите данные.)
Нет никакого способа сделать это в PhantomJS 1.9.x (и я думаю, что PhantomJS 2.x все еще имеет ту же проблему, но я лично еще не подтвердил это).
Другая часть вашего вопроса касалась решения о том, что сохранять в зависимости от типа пантомимы. Полный список доступных полей показывает, что вы можете использовать response.contentType
,