[CasperJS]模擬上陸人人網


CasperJSが何なのかわからない場合は下記のリンクをご覧ください
casperJSインストール
casperJS API
CasperJSを使用してログインをシミュレートし、アカウントのパスワードをシミュレートし、ログインボタンをクリックしてサイトにログインし、クッキーを保存するのではなく、クッキーを提出する方法でログインします.
ほとんどのサイトのusernameとpasswordはformの中に入っていて、submit、誰も例外ではありませんが、上記の方法を使用しないサイトもあります.such as sina.新浪の登録トップページにformがないので、通常のCasperJSのfill()を使って提出フォームを記入することはできません.sendKeys()を使ってアカウントのパスワードを入力し、clickをシミュレートすれば新浪微博にログインできると思っていたが、結局失敗した(原因は微博の防護措置がよかったのではないか)、同じ方法でログイン者をシミュレートすることに成功した!
コードは次のとおりです.
var casper=require('casper').create();
phantom.outputEncoding="GBK";

casper.start('http://www.renren.com',function(){
	this.echo(this.getTitle());
	this.echo('I am waitting.....');
});
casper.wait(5000,function(){
	this.capture('1.jpg');
	this.echo('capture is done');
	this.echo('input username and password....');
});
casper.then(function(){
	this.sendKeys('form#loginForm input[name="email"]','username',{reset:true});
	this.sendKeys('form#loginForm input[name="password"]','password',{reset:true});
	this.echo('input down');
	this.echo('wait for 5s');
});
casper.wait(5000,function(){
	this.capture('2.jpg');
	this.click('form#loginForm input[type="submit"]');
	this.echo('click is done');
});
casper.wait(5000,function(){
	this.capture('3.jpg');
	this.echo('Over');
});
casper.run();
ログイン中にそれぞれ3枚の画像を切り取り、それぞれトップページにログインし、アカウントのパスワードを入力し、ログイン成功後の画像をクリックした.
sendkeys()を使うのはうるさいので、誰もがfill()を使ってシミュレーションしてログインすることもできます
コードは次のとおりです.
var casper=require('casper').create();
phantom.outputEncoding="GBK";

casper.start('http://www.renren.com',function(){
	this.echo(this.getTitle());
	this.echo('I am waitting.....');
});
casper.wait(5000,function(){
	this.capture('1.jpg');
	this.echo('capture is done');
	this.echo('input username and password....submit');
});
casper.then(function(){
	this.fill('form#loginForm',{
		'email':'username',
		'password':'password'
	},true)
	this.echo('input down');
	this.echo('wait for 5s');
});
casper.wait(5000,function(){
	this.capture('2.jpg');
	this.echo('over');
});
casper.run();
も同様に画像を切り取り、それぞれ登録前と登録後のページである.
何度も試みたが、微博に上陸することに成功しなかった.革命はまだ成功していない.同志は努力しなければならない.
(以上のコードの実行時間2015/8/7は、後で誰もがページを変更したので、ログインできないかもしれません~~~)