PhantomJS самостоятельно может решить эту проблему. Этот сценарий должен быть достаточно, чтобы сделать эту страницу входа: rasterizeSimple.js
var page = require('webpage').create(),
system = require('system'),
address, output, size;
if (system.args.length != 3) {
console.log('Usage: rasterize.js URL filename');
phantom.exit(1);
} else {
address = system.args[1];
output = system.args[2];
page.viewportSize = { width: 600, height: 600 };
page.open(address, function (status) {
if (status !== 'success') {
console.log('Unable to load the address!');
phantom.exit(1);
} else {
window.setTimeout(function() {
page.render(output);
phantom.exit();
}, 2000);
}
});
}
обходя экран входа другой историю. Поскольку PhantomJS является веб-браузером, просто откройте страницу входа в систему, заполните форму, нажмите кнопку входа в систему, подождите пару секунд, а затем повторно вызовите интересующий URL-адрес, теперь как зарегистрированный пользователь. Вход в форму можно сделать разными способами, если вы предпочитаете, вы можете ввести jquery. Не тестировал этот второй скрипт, но он должен вас поймать.
page.open(address, function (status) {
if (page.injectJs('jquery-1.11.2.js')) { // Loads from the working dir i think
if (status !== 'success') {
console.log('Unable to load the address!');
phantom.exit(1);
} else {
page.evaluate(function() {
$('input[name=username]').val('username');
$('input[name=password]').val('password123');
$('input[name=submit]').click();
});
window.setTimeout(function() {
page.open(address, function (status) {
if (status == 'success') {
window.setTimeout(function() {
page.render(output);
phantom.exit();
}, 2000);
}
});
}, 2000);
}
}
});
Я по-настоящему ценю ваш ответ, но это по-прежнему представляет собой чистый pdf-документ, такой же, как и другие модули, как библиотеки, которые я пробовал. Он работает на вас? Если да, то какой ОС вы работаете? –
Windows 10. Чтобы избежать проблем, вы можете получить к нему доступ из другого веб-браузера с того же компьютера? Имеет ли в командной строке phantomjs права администратора? – GantTheWanderer
Да, я могу получить доступ к этой странице входа с того же компьютера или любого устройства. Я запускаюсь из командной строки с правами администратора. Я пробовал OSX и Windows 8 и постоянно получал пустой pdf-файл для этой и единственной страницы. Чтобы быть понятным, вы создаете эту страницу входа в систему с помощью этого первого скрипта на ОС Windows 10? Еще раз спасибо, я очень ценю ваше понимание. –