В настоящее время я работаю над некоторыми скребками с cheerio
и nightmare
. Причина, по которой я использую оба, а не только cheerio
, заключается в том, что я должен манипулировать сайтом, чтобы добраться до той части, которую я хочу очистить, и я нашел кошмар очень хорошим при выполнении этих сценариев.Возврат HTML-кода из Nightmare.js
Итак, сейчас я использую nightmare
, чтобы получить до тех пор, пока не появится информация, которая мне нужна. После этого на evaluate()
я пытаюсь как-то вернуть текущий html
, а затем передать его cheerio
, чтобы сделать царапину. Проблема в том, что я не знаю, как извлечь html из объекта document
. Есть ли свойство из document
, которое возвращает полное тело?
Вот что я пытаюсь сделать:
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);
})
Обязательно ли все 'html' или' document.body' достаточно? –
До сих пор мне просто нужно тело @ R.A.Lucas –
Работает ли возврат 'document.body' от метода' оценки'? –