2016-09-25 5 views
3

私は現在、cheerionightmareでいくつかの削り取り作業を進めています。 cheerioだけでなく両方を使用している理由は、私が擦り傷を付けたい部分にアクセスするためにサイトを操作する必要があり、悪夢が非常にうまくそれらのスクリプトを実行することがわかったからです。Nightmare.jsからHTMLボディを返す

今、私はnightmareを使用して、必要な情報が表示されるまで取得します。その後、evaluate()で何とか現在のhtmlを返そうとしていたら、それをcheerioに渡して擦れを行います。問題は、documentオブジェクトからhtmlを取得する方法がわからないことです。 document thatsからフルボディを返すプロパティがありますか?ここで

私がやろうとしているされているもの:これにより

var Nightmare = require('nightmare'); 
var nightmare = Nightmare({show:true}) 
var express = require('express'); 
var fs = require('fs'); 
var request = require('request'); 
var cheerio = require('cheerio'); 
var app  = express(); 

var urlWeb = "url"; 
var selectCity = "#ddl_city" 

nightmare 
.goto(urlWeb) 
.wait(selectCity) 
.select('#ddl_city', '19') 
.wait(6000) 
.select('#ddl_theater', '12') 
.wait(1000) 
.click('#btn_enter') 
.wait('#aspnetForm') 
.evaluate(function(){ 

    //here is where I want to return the html body 
    return document.html; 


}) 
.then(function(body){ 
//loading html body to cheerio 
    var $ = cheerio.load(body); 
    console.log(body); 
}) 
+0

あなたは必要ないすべての 'html'かある'十分document.body'? –

+0

これまではbody @ R.A.Lucasが必要です –

+0

'evaluate'メソッドの' document.body'が返されますか? –

答えて

5

が働いた:

document.body.innerHTML 
関連する問題