从 Nightmare.js 返回 HTML 正文

Returning HTML body from Nightmare.js

我目前正在使用 cheerionightmare 进行一些抓取。我同时使用两者而不仅仅是 cheerio 的原因是因为我必须操纵网站才能到达我想要抓取的部分,而且我发现 nightmare 非常擅长执行这些脚本。

所以,现在我正在使用 nightmare 来获取显示我需要的信息的部分。之后,在 evaluate() 上,我试图以某种方式 return 当前 html 然后将其传递给 cheerio 进行抓取。问题是我不知道如何从 document 对象中检索 html。 document 有没有 属性 那就是 return 的全身?

这是我正在尝试做的事情:

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);
})

有了这个工作:

document.body.innerHTML