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;