NodeJS HttpGet 方法不适用于 Wiki
NodeJS HttpGet method not working on Wiki
Objective
下载维基页面的 HTML。
背景
我正在尝试下载 Wiki 页面的 HTML (http://warframe.wikia.com/wiki/Mods_2.0) to parse for information. To achieve this I am using NodeJS and I am using its 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?,但是那个讨论有一个不同的问题(它关注流媒体,这不是我的 objective)。
问题
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();
只需从主机中删除 http://
host: "warframe.wikia.com",
并在路径前加一个/
作为根目录
path: '/wiki/Mods_2.0'
希望它会起作用,在上一个问题中看到它Link
Objective
下载维基页面的 HTML。
背景
我正在尝试下载 Wiki 页面的 HTML (http://warframe.wikia.com/wiki/Mods_2.0) to parse for information. To achieve this I am using NodeJS and I am using its 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?,但是那个讨论有一个不同的问题(它关注流媒体,这不是我的 objective)。
问题
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();
只需从主机中删除 http://
host: "warframe.wikia.com",
并在路径前加一个/
作为根目录
path: '/wiki/Mods_2.0'
希望它会起作用,在上一个问题中看到它Link