使用node.js从html页面获取页面数据

时间:2014-06-09 05:40:42

标签: jquery node.js

我试图使用nodejs

从html页面获取一些文本

这是网址。从这个网址我想得到字符串0e783d248f0e27408d3a6c043f44f337c54235ce .   我试过这种方式。但没有得到任何数据

var getGitKey = function (context, callback) {
  http.get("gggg/status", function(res) {
      var data = "";
      res.on('data', function (chunk) {
        data += chunk;
      });
      res.on("end", function() {
console.log("DATA-------------------------------");
console.log(data);
        callback(data);
      });
    }).on("error", function() {
     // callback(null);
    });

};

请帮我解释我的代码错误

1 个答案:

答案 0 :(得分:2)

我认为您的代码很好。你只需要确保。

    {li} http模块需要var http = require('http');
  1. 也永远不会调用您已定义并分配给变量getGitKey的匿名函数。像getGitKey();
  2. 对我有用的完整代码是

    var http = require("http");
    var getGitKey = function (context, callback) {
    http.get("http://integration.twosmiles.com/status", function(res) {
        var data = "";
        res.on('data', function (chunk) {
            data += chunk;
        });
        res.on("end", function() {
            console.log("DATA-------------------------------");
            console.log(data);
            callback(data);
        });
    }).on("error", function() {
        // callback(null);
    });
    
    };
    getGitKey();
    

    结果为access denied,因为您的网页受到简单身份验证的保护。如果您尝试直接在浏览器上打开它,也会发生同样的情况。如果您有用户名和密码来访问该页面,那么您可以参考以下SO答案,了解有关使用带有基本身份验证的http模块的详细信息。

    How to use http.client in Node.js if there is basic authorization