Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用express的Node.js:如何等待所有元素加载(包括使用ajax请求或angular.js的元素)?_Javascript_Jquery_Angularjs_Ajax_Node.js - Fatal编程技术网

Javascript 使用express的Node.js:如何等待所有元素加载(包括使用ajax请求或angular.js的元素)?

Javascript 使用express的Node.js:如何等待所有元素加载(包括使用ajax请求或angular.js的元素)?,javascript,jquery,angularjs,ajax,node.js,Javascript,Jquery,Angularjs,Ajax,Node.js,我试图在一段时间后将一页完全加载的内容刮去。我使用request.get,请求返回response.statusCode==200 唯一的问题是,页面仍在使用ajaxrequest加载和请求某些内容。我从页面上猜测他们使用的是angular.js,所以这是SPA 问题:我想清除产品站点中所有尚未加载的div var express=require('express'); var fs=需要('fs'); var请求=要求(“请求”); var cheerio=需要('cheerio'); var

我试图在一段时间后将一页完全加载的内容刮去。我使用
request.get
,请求返回
response.statusCode==200

唯一的问题是,页面仍在使用
ajax
request加载和请求某些内容。我从页面上猜测他们使用的是
angular.js
,所以这是SPA

问题:我想清除产品站点中所有尚未加载的
div

var express=require('express');
var fs=需要('fs');
var请求=要求(“请求”);
var cheerio=需要('cheerio');
var-app=express();
app.get('/scrape',函数(req,res){
变量选项={
网址:'http://example.com'
};
get(选项、函数(错误、响应、html){
如果(!error&&response.statusCode==200){
var$=cheerio.load(html);
如果(!错误){
var i=0;

console.log(html);//在这里(在html变量中),我发现页面仍然加载了{width.something etc}你可以使用像Dream.js/phantom.js这样的模块来抓取网站。这将允许你等待一些ajax调用完成。哇,快速回答。谢谢。我将尝试一下。对不起,我是node.js新手,这只是一个基本问题,可以将node与phantom.js或Dream.js一起使用吗?它是本机使用的吗?还是常用的?是的。两者都可以作为node使用e模块。我不会加载整个页面,而是尝试找出ajax调用是什么,并直接从节点脚本请求它。这真的很难,因为网站太大了,所以文件管理等都非常复杂。你有什么“简单”的方法吗跟踪请求的方法?你可以使用像Dream.js/phantom.js这样的模块来抓取网站。这将允许你等待一些ajax调用完成。哇,快速回答。谢谢。我将尝试一下。对不起,我是node.js新手,这只是一个基本问题,可以将node与phantom.js或Dream.js一起使用吗?它是本机使用的还是常用的?是的。两者都可以作为节点模块使用。我不会加载整个页面,而是尝试找出ajax调用是什么,并直接从节点脚本请求它。这真的很难,因为网站太大了,所以文件管理等都非常复杂。你有什么“简单”的方法来跟踪请求吗?
var express = require('express');
var fs = require('fs');
var request = require('request');
var cheerio = require('cheerio');

var app = express();

app.get('/scrape', function(req, res){
    var options = {
      url: 'http://example.com'
    };

    request.get(options, function(error, response, html){
        if (!error && response.statusCode == 200) {

            var $ = cheerio.load(html);

            if(!error){
                var i=0;

                console.log(html); // here (in the html variable) I found the page is still loaded with {width.something etc} << my best guess is this one is angular.js code
            }
        }
    });
});

app.listen('8081');
console.log('Listening...'); 
exports = module.exports = app;