2011-04-27 73 views
14

在代碼中,我想下載「http://www.google.com」並將其存儲在字符串中。 我知道如何在python中的urllib中做到這一點。但是,您如何在Node.JS + Express中執行此操作?在Node.js/Express中,如何「下載」頁面並獲取其HTML?

+0

有沒有簡單的方法來做到這一點?我希望有一套很好的「工具」,我可以作爲一個模塊下載... – TIMEX 2011-04-27 08:50:52

+0

你能解釋一下「代碼內部」的含義嗎? – 2012-10-11 20:18:56

回答

14

如何使用Node.js,你可以只使用http.request方法

http://nodejs.org/docs/v0.4.7/api/all.html#http.request

這種方法被內置到你只需要爲需要HTTP節點。

如果你只想做一個GET,那麼你可以使用http.get

http://nodejs.org/docs/v0.4.7/api/all.html#http.get

var options = { 
    host: 'www.google.com', 
    port: 80, 
    path: '/index.html' 
}; 

http.get(options, function(res) { 
    console.log("Got response: " + res.statusCode); 
}).on('error', function(e) { 
    console.log("Got error: " + e.message); 
}); 

(node.js的從實例文檔)

你也可以使用mikeal的要求模塊

https://github.com/mikeal/request

+1

請求模塊效果最好。我嘗試了兩種方法,並且本機http模塊掛在多個/併發請求上。 – reubano 2013-09-24 09:23:52

+0

這是真的,直到你必須使用重定向,可選的基本授權等'npm install download'的效果最好。 – 2014-09-08 17:28:21

19
var util = require("util"), 
    http = require("http"); 

var options = { 
    host: "www.google.com", 
    port: 80, 
    path: "/" 
}; 

var content = ""; 

var req = http.request(options, function(res) { 
    res.setEncoding("utf8"); 
    res.on("data", function (chunk) { 
     content += chunk; 
    }); 

    res.on("end", function() { 
     util.log(content); 
    }); 
}); 

req.end(); 
相關問題