У меня установлен PhantomJS, и примеры скриптов с официального сайта Phantom работают нормально.
Я пытаюсь заставить этот пример скриншота работать:
var page = require('webpage').create();
page.open('http://github.com/', function() {
page.render('github.png');
phantom.exit();
});
но все, что я получаю, это пустой файл github.png весом 582Kb
Есть идеи?
Предложение @ced-b разумно, но я не думаю, что ваша проблема будет решена с использованием тайм-аута, потому что реальная проблема, скорее всего, связана с SSL/TLS. GitHub - это веб-сайт HTTPS. Поэтому, если вы хотите получить скриншот, вам может потребоваться добавить параметр --ignore-ssl-errors=true
при запуске скрипта PhantomJS. По умолчанию вы должны получить узкий скриншот, но вы можете, конечно, установить более крупный видовой экран:
var page = require('webpage').create();
page.viewportSize = {
width: 1920,
height: 1080
};
page.open('https://github.com/', function () {
page.render('github.png');
phantom.exit();
});
Имел ту же проблему с этой библиотекой: https://github.com/juliangruber/url-to-screenshot
установка sslCertificatesPath ("any") устраняет проблему
new Screenshot('https://somerandomsite.com/')
.width(320)
.height(320)
.sslCertificatesPath('any')
.capture()
.then(img => {
// do stuff with img
})
Возможно, вам придется дождаться загрузки и рендеринга страницы. Попробуйте добавить тайм-аут:
var page = require('webpage').create();
page.open('http://github.com/', function() {
setTimeout(function() {
page.render('github.png');
phantom.exit();
}, 500);
});
https://github.com/
, поскольку GitHub теперь обслуживается безопасно.