Загрузите файл в зависимости от 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,

Другие вопросы по тегам