casperjs模拟登录-jd无验证码签到

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了casperjs模拟登录-jd无验证码签到相关的知识,希望对你有一定的参考价值。

var casper = require(‘casper‘).create({
	clientScripts:[
		‘E:/jquery.js‘
	]
});

var accountLogin = ‘.login-form .login-tab-r a‘;
var hidestr = "hide",has_verify = false;

casper.start(‘http://vip.jd.com/‘);

casper.then(function(){
	this.wait(5000,function() {  
        this.echo("I‘ve waited for 5 seconds again"); 
    });
});

//可删除
casper.then(function() {  
    this.capture("vipjdcom1.jpeg");  
});

casper.then(function(){
	if (this.exists("#ttbar-login")) {
		this.click("#shortcut-2014 .w .fr #ttbar-login a");
	}else{
		this.echo("not exists");
	}
});

casper.then(function(){
	this.wait(10000,function() {  
        this.echo("I‘ve waited for 10 seconds again"); 
    });
});

//可删除
casper.then(function() {  
    this.capture("accountloginui1.jpeg");  
});

casper.then(function(){
	if (this.exists(accountLogin)) {
		this.echo("exists");
		this.click("#content .login-wrap .w .login-form .login-tab-r a");
	}else{
		this.echo("not exists");
	}
});

casper.then(function(){
	this.wait(2000,function() {  
        this.echo("I‘ve waited for 2 seconds again"); 
    });
});

//可删除
casper.then(function() {  
        this.capture("accountloginui2.jpeg");  
});

casper.then(function(){
	if (this.exists("#o-authcode")) {
		this.evaluate(function(){
			var oauthcode = document.getElementById("o-authcode");
			var classValue = oauthcode.className;
			if (classValue !=null) {
				if (classValue.indexOf(hidestr) > 0) {
					has_verify = false;
				}else{
					this.captureSelector("./jdcode.jpeg","#JD_Verification1");
					has_verify = true;
				}
			}
		});
	}
});

casper.then(function(){
	this.wait(2000,function() {  
        this.echo("I‘ve waited for 2 seconds again"); 
    });
});

casper.then(function(){
	if (has_verify) {
		this.echo("需要输入验证码");
	}else{
		this.fill(‘form[id="formlogin"]‘,{
			‘loginname‘:‘[email protected]‘,
			‘nloginpwd‘:‘dys19871119‘,

		},true);
	}
});

casper.then(function(){
	this.click(".login-btn a");
	this.echo("登录中...");
});

casper.then(function() {  
    this.wait(10000,function() {  
        this.echo("I‘ve waited for 10 seconds again"); 
    });  
}); 

casper.then(function() {  
    this.echo(‘new location is ‘ + this.getCurrentUrl());  
    this.capture("vipjdcom2.jpeg");  
});

casper.then(function() {  
     this.click(".side-shortcut #checkinBtn .icon-set");
}); 

casper.then(function() {  
    this.wait(2000,function() {  
        this.echo("I‘ve waited for 2 seconds again"); 
    });  
});

casper.then(function() {  
    this.capture("vipjdcom3.jpeg");  
});

casper.then(function() {  
    this.echo("签到成功");
});

casper.run();


本文出自 “素颜” 博客,请务必保留此出处http://suyanzhu.blog.51cto.com/8050189/1900600

以上是关于casperjs模拟登录-jd无验证码签到的主要内容,如果未能解决你的问题,请参考以下文章

在Python中用Request库模拟登录:博客园(简单加密,无验证码)

scrapy模拟知乎登录(无验证码机制)

casperjs模拟登录-驾校登录

验证码处理+cookie模拟登录

用casperjs模拟登录,支持多个账户登录

Python技能树共建Python爬虫模拟登录