Я нашел так много вопросов об этом здесь, но не знаю, почему на них не ответили.Как получить следующую страницу после входа в систему с PhatomJs?
Я пытаюсь сканировать веб-страницы после входа в систему с этим кодом: source
var steps=[];
var testindex = 0;
var loadInProgress = false;//This is set to true when a page is still loading
/*********SETTINGS*********************/
var webPage = require('webpage');
var page = webPage.create();
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36';
page.settings.javascriptEnabled = true;
page.settings.loadImages = false;//Script is much faster with this field set to false
phantom.cookiesEnabled = true;
phantom.javascriptEnabled = true;
/*********SETTINGS END*****************/
console.log('All settings loaded, start with execution');
page.onConsoleMessage = function(msg) {
console.log(msg);
};
/**********DEFINE STEPS THAT FANTOM SHOULD DO***********************/
steps = [
//Step 1 - Open Amazon home page
function(){
console.log('Step 1 - Abrindo página de login');
page.open("http://parceriascury.housecrm.com.br", function(status){
});
},
//Step 3 - Populate and submit the login form
function(){
console.log('Step 3 - Preenchendo o form');
page.evaluate(function(){
document.getElementById("login").value="xxxxx";
document.getElementById("senha").value="xxxxx";
document.getElementById("frmlandingpage").submit();
});
},
//Step 4 - Wait Amazon to login user. After user is successfully logged in, user is redirected to home page. Content of the home page is saved to AmazonLoggedIn.html. You can find this file where phantomjs.exe file is. You can open this file using Chrome to ensure that you are logged in.
function(){
console.log("Step 4 - Wait Amazon to login user. After user is successfully logged in, user is redirected to home page. Content of the home page is saved to AmazonLoggedIn.html. You can find this file where phantomjs.exe file is. You can open this file using Chrome to ensure that you are logged in.");
var fs = require('fs');
var result = page.evaluate(function() {
return document.documentElement.outerHTML;
});
fs.write('C:\\phantomjs\\logado_cury_10.html',result,'w');
},
];
/**********END STEPS THAT FANTOM SHOULD DO***********************/
//Execute steps one by one
interval = setInterval(executeRequestsStepByStep,5000);
function executeRequestsStepByStep(){
if (loadInProgress == false && typeof steps[testindex] == "function") {
//console.log("step " + (testindex + 1));
steps[testindex]();
testindex++;
}
if (typeof steps[testindex] != "function") {
console.log("test complete!");
phantom.exit();
}
}
/**
* These listeners are very important in order to phantom work properly. Using these listeners, we control loadInProgress marker which controls, weather a page is fully loaded.
* Without this, we will get content of the page, even a page is not fully loaded.
*/
page.onLoadStarted = function() {
loadInProgress = true;
console.log('Loading started');
};
page.onLoadFinished = function() {
loadInProgress = false;
console.log('Loading finished');
};
page.onConsoleMessage = function(msg) {
console.log(msg);
};
Но ответ только это:
<html><head></head><body>ok</body></html>
Мне нужно, чтобы получить содержание следующей страницы с URL:
http://parceriascury.housecrm.com.br/parceiro_busca
Я могу получить доступ к этой странице напрямую, но не со всеми дополняет, так как он должен быть зарегистрирован.
Нет ошибок, и я не знаю, где я делаю ошибку.
Редактировать Другие решения приветствуются, я думаю, может быть curl
... Но после того, как Js загрузка ...
Извините за мой плохой английский.
выглядит, как вы получаете кадр после аутентификации, пустую страницу, которая просто говорит «ОК». добавьте таймер или selectorchange, чтобы убедиться, что вы достаточно долго подождите, чтобы произошла переадресация. – xShirase
Да, выглядит так, но когда я вхожу в систему с помощью ручного метода, после входа в систему перенаправляю на эту другую страницу, и я не могу видеть 'ok':' http: // parceriascury.housecrm.com.br/parceiro_busca', у вас есть небольшой отзыв для меня, чтобы добиться успеха? Tks for atention ... – MagicHat
Вы можете добавить [phantom.onError] (http://phantomjs.org/api/phantom/handler/on-error.html) обратный вызов и [page.onError] (http: // phantomjs. org/api/webpage/handler/on-error.html) –