casperjsでいろんな画面のキャプチャを取得して
みたんだけど、うまく取得できなかったり
ちょっと、小細工したりしたかったので
そこらへんの内容をメモメモ
■ SSLのページが失敗する
SSLのページをキャプチャしようとすると
真っ黒になってしまったので、
そんなときは「–ssl-protocol=any」を付けて実行する!
1 |
$ casperjs --ssl-protocol=any test.js |
■ 背景が黒になる
どうやら、phantomjsの背景は、デフォルトで何も指定されていないので
サイト側でbodyの「background-color」をしてない場合、
背景が黒になってしまうらしい。
なので、「background-color」が指定されているか判別して
指定されてなかったら、白を設定したほうがよいかも
1 2 3 4 5 6 |
casper.evaluate(function(){ bgColor = $("body").css("background-color"); if (bgColor == 'rgba(0, 0, 0, 0)') { $("body").css("background-color", '#ffffff'); } }); |
■ ページが完全に表示されていない
なんかjsでごにょごにょやってるサイトとかは
ちょっと待ってからキャプチャしないと中途半端な画面に、、、
単位はms
1 |
casper.wait(2000); |
■ 「もっと見る」みたいなのを開いてからキャプチャしたい
どうせキャプチャとるなら、いろんな情報が欲しい!
なんてときは、「もっと見る」とかのリンクをクリックしてから
キャプチャを取得!
このサンプルでは、class名が「more-link」のリンクを
ひたすらクリックしてからキャプチャを取ってるよー
1 2 3 4 5 6 7 8 9 |
moreLink = this.evaluate(function(){ return document.querySelectorAll('.more-link'); }); i = 0; while(i < moreLink.length) { this.click('.more-link'); i=(i+1); } |
■ プロキシを通したい
べ、別にやましいことをしてるわけじゃないけど
身元を隠したいってときに
1 |
$ casperjs --proxy=xxx.xxxx.com:xxxx test.js |
■ cookieを使用したい
別に使用したくないけど、変な広告のせいで
cookieが有効になってないとエラーメッセージがでてたので、、、
1 |
$ casperjs --cookies-file=/var/www/html/cookies.txt test.js |