2015-10-22 5 views
11

私は実際にX線と.driver(ファントム())を認証に使用する例は見つかりません。 私はX線およびX線ファントムはまだ助けを見つけることができません。x-線 - ファントム認証、有効にログインできない

+1

X線がそのために設計されたようにそれは見えません。私はページに何かを入力する方法がありません。あなたがコードで見つけた 'request()'メソッドを使うことができるようです。 –

答えて

4
/** 
* Module Dependencies 
*/ 

var Crawler = require('x-ray-crawler'); 
var cheerio = require('cheerio'); 
var join = require('path').join; 
var assert = require('assert'); 
var phantom = require('../'); 
var fs = require('fs'); 

/** 
* Tests 
*/ 

describe('phantom driver', function() { 

    it('should have sensible defaults', function(done) { 
    var crawler = Crawler() 
     .driver(phantom()) 

    crawler('http://google.com', function(err, ctx) { 
     if (err) return done(err); 
     var $ = cheerio.load(ctx.body); 
     var title = $('title').text(); 
     assert.equal('Google', title); 
     done(); 
    }) 
    }); 

    it('should work with client-side pages', function(done) { 
    var crawler = Crawler() 
     .driver(phantom()); 

    crawler('https://exchange.coinbase.com/trade', function(err, ctx) { 
     if (err) return done(err); 
     var $ = cheerio.load(ctx.body); 
     var price = $('.market-num').text(); 
     assert.equal(false, isNaN(+price)); 
     done(); 
    }) 
    }) 

    it('should support custom functions', function(done) { 
    var crawler = Crawler() 
     .driver(phantom(runner)); 

    crawler('http://mat.io', function(err, ctx) { 
     if (err) return done(err); 
     var $ = cheerio.load(ctx.body); 
     var title = $('title').text(); 
     assert.equal('Lapwing Labs', title); 
     done(); 
    }) 

    function runner(ctx, nightmare) { 
     return nightmare 
     .goto(ctx.url) 
     .click('.Header-logo-item+ .Header-list-item a') 
     .wait() 
    } 
    }) 
}) 

/** 
* Read 
*/ 

function get(path) { 
    return require(join(__dirname, 'fixtures', path)); 
} 

以下のリンクを参考にしてください。

  1. https://github.com/lapwinglabs/x-ray-phantom
  2. https://github.com/lapwinglabs/x-ray/issues/22
関連する問題