目标
下载 Wiki 页面的 HTML。
背景
我正在尝试下载 Wiki 页面 ( http://warframe.wikia.com/wiki/Mods_2.0 ) 的 HTML 来解析信息。为了实现这一点,我正在使用 NodeJS,并且我正在使用它的 HTTP Request methods .
代码
我有一个非常简单的代码文件,它仅访问该网站并尝试打印其内容:
"use strict";
var http = require("http");
var options = {
host: "http://warframe.wikia.com",
port: 80,
path: 'wiki/Mods_2.0',
method: "GET"
};
var req = http.request(options, function(res) {
console.log("STATUS: " + res.statusCode);
console.log("HEADERS: " + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on("data", function (chunk) {
console.log("BODY: " + chunk);
});
});
req.end();
问题
问题是,无论我做什么,也无论我尝试什么,我总是得到以下错误输出:
Debugger listening on port 15454 events.js:141
throw er; // Unhandled 'error' event
^
Error: getaddrinfo ENOTFOUND http://warframe.wikia.com http://warframe.wikia.com:80
at errnoException (dns.js:27:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:78:26)
Process exited with code: 1
我相当确定我错误地构建了 URL,但不知何故我不明白如何解决这个问题!
我尝试了什么
我的做法是基于本次讨论的内容In Node.js / Express, how do I "download" a page and gets its HTML? .
我尝试了 options
变量中 URL 路径的多种组合,结果却得到了同一错误的不同版本。
我还读过In Node.js / Express, how do I "download" a page and gets its HTML? ,但是该讨论有一个不同的问题(它侧重于流媒体,这不是我的目标)。
问题
1 - 我相当确定这是一个简单的错误,但我看不到它。我错过了什么?
最佳答案
去掉url中的http
并在路径中添加/
:
"use strict";
var http = require("http");
var options = {
host: "warframe.wikia.com",
port: 80,
path: '/wiki/Mods_2.0',
method: "GET"
};
var req = http.request(options, function(res) {
console.log("STATUS: " + res.statusCode);
console.log("HEADERS: " + JSON.stringify(res.headers));
//res.setEncoding('utf8');
res.on("data", function (chunk) {
console.log("BODY: " + chunk);
});
});
req.end();
关于javascript - NodeJS HttpGet 方法在 Wiki 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38345775/