casperjs 小技いろいろ

casperjsでいろんな画面のキャプチャを取得して

みたんだけど、うまく取得できなかったり

ちょっと、小細工したりしたかったので

そこらへんの内容をメモメモ

■ SSLのページが失敗する
SSLのページをキャプチャしようとすると
真っ黒になってしまったので、
そんなときは「–ssl-protocol=any」を付けて実行する!

$ casperjs --ssl-protocol=any test.js

■ 背景が黒になる
どうやら、phantomjsの背景は、デフォルトで何も指定されていないので
サイト側でbodyの「background-color」をしてない場合、
背景が黒になってしまうらしい。

なので、「background-color」が指定されているか判別して
指定されてなかったら、白を設定したほうがよいかも

    casper.evaluate(function(){
        bgColor = $("body").css("background-color");
        if (bgColor == 'rgba(0, 0, 0, 0)') {
            $("body").css("background-color", '#ffffff');
        }
    });

■ ページが完全に表示されていない
なんかjsでごにょごにょやってるサイトとかは
ちょっと待ってからキャプチャしないと中途半端な画面に、、、
単位はms

casper.wait(2000);

■ 「もっと見る」みたいなのを開いてからキャプチャしたい
どうせキャプチャとるなら、いろんな情報が欲しい!
なんてときは、「もっと見る」とかのリンクをクリックしてから
キャプチャを取得!
このサンプルでは、class名が「more-link」のリンクを
ひたすらクリックしてからキャプチャを取ってるよー

    moreLink = this.evaluate(function(){
        return document.querySelectorAll('.more-link');
    });

    i = 0;
    while(i < moreLink.length) {
        this.click('.more-link');
        i=(i+1);
    }

■ プロキシを通したい
べ、別にやましいことをしてるわけじゃないけど
身元を隠したいってときに

$ casperjs --proxy=xxx.xxxx.com:xxxx test.js

■ cookieを使用したい
別に使用したくないけど、変な広告のせいで
cookieが有効になってないとエラーメッセージがでてたので、、、

$ casperjs --cookies-file=/var/www/html/cookies.txt test.js

コメント

タイトルとURLをコピーしました