如何从由no-js类组成的网页转储表格数据?

时间:2014-02-14 10:18:22

标签: javascript node.js web-scraping

我正在尝试搜索使用 no-js html类的网页。 我想出了代码来抓。

现在该网页总是有一个表格,我希望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");  
});

1 个答案:

答案 0 :(得分:1)

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

Cherrio提供了一个可以在服务器上使用的轻量级jquery实现: https://github.com/MatthewMueller/cheerio

Request提供简化的http客户端: https://github.com/mikeal/request

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(', '));

  });
});