Trying to login into admin.booking.com
and scrap out all the bookings of my hotel from the reservation page. But the thing is whenever I login using CasperJS or from a new location (new browser) it's asking for phone verification. Its redirecting the reservation page to phone verification page. Here is my code
var casper = require('casper').create({
verbose: true,
logLevel: 'debug',
viewportSize: {width: 950, height: 950}
});
casper.userAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36');
casper.start('https://admin.booking.com/', function() {
//this.captureSelector('bhuwan1.png', 'body');
});
casper.then(function(){
this.evaluate(function(){
document.getElementById("loginname").value="1123123";
document.getElementById("password").value="*******";
});
});
casper.then(function(){
//$("button").eq(1).click();
this.click('button.btn-primary');
//this.wait(10000);
console.log("first wait for 10sec");
});
casper.then(function(){
this.wait(10000);
});
casper.then(function(){
var ses = this.getCurrentUrl().split("ses=")[1].split("&")[0];
console.log(ses);
//this.wait(10000);
console.log("first wait for 10sec");
var url = "https://admin.booking.com/hotel/hoteladmin/extranet_ng/manage/search_reservations.html?stay_to=2017-01-08&stay_from=2017-01-07&type=arrival&hotel_id=xxxxx&ses="+ses;
console.log(url);
this.evaluate(function(url){
var newDiv = document.createElement("div");
var newContent = document.createElement("a");
newContent.setAttribute("href",url);
newContent.innerText="button";
newDiv.appendChild(newContent);
document.body.appendChild(newDiv);
this.wait(10000);
},url);
});
casper.then(function(){
this.clickLabel("button",'a');
});
casper.then(function(){
this.wait(10000);
console.log("first wait for 10sec");
this.capture('stack15.png', {
top: 0,
left: 0,
width:1000,
height: 2000
});
this.captureSelector('bhuwan15.png', 'body');
});
casper.run();
How to avoid the phone verification page and login as if its getting logged in from the familiar or old browser?
I suggest you to use authentication which is based on a cookie. You need to find minimal amount of cookie that is needed to keeping your session. After that, you need to add into your script something like:
See also: this issue