5

私はphantomjsを学びたいのですが、良いチュートリアルが見つかりません。2 つの質問があります。

  1. 次のコードの問題はどこにありますか(ボタンのラベルをキャプチャしてファイルに書き込む必要があります):

    var page = require('webpage').create();
    var fs = require('fs');
    
    page.onConsoleMessage = function(msg) {
        phantom.outputEncoding = "utf-8";
        console.log(msg);
    };
    
    page.open("http://vk.com", function(status) {
        if ( status === "success" ) {
            page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
                page.evaluate(function() {
                    var str = $("#quick_login_button").text();
                    f = fs.open("ololo.txt", "w");
                    f.writeLine(str);
                    f.close();
                    console.log("done");
                });
                phantom.exit();
            });
        }
    });
    
  2. 私にアドバイスできるphantomjsのチュートリアルは何ですか? (公式サイトからではありません)

4

1 に答える 1

2

実行はサンドボックス化されているため、Web ページはファントム オブジェクトにアクセスできません。

var page = require('webpage').create();
var fs = require('fs');

page.onConsoleMessage = function(msg) {
    phantom.outputEncoding = "utf-8";
    console.log(msg);
};

page.open("http://vk.com", function(status) {
    if ( status === "success" ) {
        page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
            var str = page.evaluate(function() {
                return $("#quick_login_button").text();        
            });
            f = fs.open("ololo.txt", "w");
            f.writeLine(str);
            f.close();
            console.log("done");

            phantom.exit();
        });
    }
});

PhantomJS には、多くの例が含まれています。ここを見てください。

于 2013-03-08T12:45:03.313 に答える