Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.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 如何从没有js类的网页中转储表格数据?_Javascript_Node.js_Web Scraping - Fatal编程技术网

Javascript 如何从没有js类的网页中转储表格数据?

Javascript 如何从没有js类的网页中转储表格数据?,javascript,node.js,web-scraping,Javascript,Node.js,Web Scraping,我试图浏览一个使用无jshtml类的网页。 我已经想出了一些代码来刮 现在,网页总是有一个表,我想在excel文件中完整的表。 这意味着浏览网页并将表格转储到文件中 我该怎么做 这是到目前为止的代码 var http = require("http"); function download(url, callback) { http.get(url, function(res) { var data = ""; res.on('data', function (chunk)

我试图浏览一个使用无jshtml类的网页。 我已经想出了一些代码来刮

现在,网页总是有一个表,我想在excel文件中完整的表。 这意味着浏览网页并将表格转储到文件中

我该怎么做

这是到目前为止的代码

var http = require("http");

function download(url, callback) {
  http.get(url, function(res) {
    var data = "";
    res.on('data', function (chunk) {
      data += chunk;
    });
    res.on("end", function() {
      callback(data);
    });
  }).on("error", function() {
    callback(null);
  });
}

var url = "http://kayak.com"

download(url, function(data) {
  if (data) {
    console.log(data);
  }
  else console.log("error");  
});

您可以使用请求模块获取页面标记,然后使用cherrio解析它

Cherrio提供了可在服务器上使用的轻量级jquery实现:

请求提供了一个简化的http客户端:


您需要安装模块:
npm安装cheerio请求--save
Um。这不能解决我的问题。我想要完整的表及其所有rwo列条目。使用你的代码并不能做到这一点。我只需要文本数据;没有html标记或内容。@R11G我更新了我的示例,以完全解析单元格的文本。
var request = require('request');
var cheerio = require('cheerio');

var url = 'http://kayak.com';

request(url, function(err, res, body){
  $ = cheerio.load(body);
  var $rows = $('table tr').toArray();

  $rows.map(function(row){
    var cells = $(row).find('td').toArray();

    console.log(cells.map(function(cell){
      return $(cell).text().trim();
    }).join(', '));

  });
});