我目前正在与cheerio和噩梦进行一些拼抢.我之所以使用这两者而不仅仅是cheerio的原因是因为我必须操纵网站才能找到我想要抓到的部分,而且我发现噩梦非常擅长做这些脚本.
所以,现在我正在使用噩梦直到显示我需要的信息的部分.在那之后,在evaluate()上我试图以某种方式返回当前的html,然后将它传递给cheerio进行刮擦.问题是我不知道如何从文档对象中检索html.文件中是否有属性可以返回完整的正文?
这是我正在尝试做的事情:
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