Подтвердить что ты не робот

Phantomjs - снимок экрана с веб-страницы

У меня есть URL (например, http://www.example.com/OtterBox-77-24444-Commuter-Series-Optimus/dp/B00A21KPEI/ref=pd_sim_cps_4) и вы хотите сделать снимок экрана и просмотреть его на моей веб-странице. Смысл, пользователь нажимает кнопку предварительного просмотра, и PhantomJS необходимо просмотреть веб-страницу в формате PNG/JPEG

Я в порядке с любым другим открытым исходным кодом.

4b9b3361

Ответ 1

Я собираюсь предположить, что вы установили Phantomjs и создали псевдоним в своем .bashrc или обновили свой системный путь для вызова двоичных файлов Phantomjs. Если нет, вам нужно ознакомиться с несколькими учебниками для начинающих: http://net.tutsplus.com/tutorials/javascript-ajax/testing-javascript-with-phantomjs/

Как только вы настроитесь, вам нужно будет написать простой файл javascript, который вы будете вызывать в терминале (или оболочке, если вы используете Windows). Я приведу простой пример script ниже.

var WebPage = require('webpage');
page = WebPage.create();
page.open('http://google.com');
page.onLoadFinished = function() {
   page.render('googleScreenShot' + '.png');
   phantom.exit();}

Затем сохраните файл js. Откройте ваш терминал или оболочку и запустите следующие

phantomjs yourFile.js

Что это. Проверьте каталог, в котором вы назвали файл js, и у вас должен быть png файл с снимком экрана вашей веб-страницы.

Это очень просто, и есть много предостережений для фантомов, но это примерно так же просто, как я могу это сделать. Если вам нужны другие рецепты для phantomjs, попробуйте посмотреть на эти примеры скриптов: https://github.com/ariya/phantomjs/wiki/Examples

Ответ 2

Вышеприведенный ответ подходит для основного использования, но PhantomJS не знает, были ли загружены все запросы AJAX или нет. Я сделал url-to-image, чтобы помочь с этой проблемой.

  • npm install url-to-image
  • Напишите screenshot.js

    var screenshot = require('url-to-image');
    screenshot('http://google.com', 'google.png').done(function() {
        console.log('http://google.com screenshot saved to google.png');
    });
    
  • Запустить script node screenshot.js