下载Wiki页面的HTML。
我正在尝试下载Wiki页面的HTML(http://warframe.wikia.com/wiki/Mods_2.0)来解析信息。为实现这一目标,我使用的是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 - 我很确定这是一个简单的错误,但我看不到它。我错过了什么?
答案 0 :(得分:2)
删除网址中的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();
答案 1 :(得分:1)
只需从主机
中删除http://
即可
主持人:“warframe.wikia.com”,
在路径之前添加/
作为根目录
路径:'/ wiki /Mods_2.0'
希望它能够奏效,请参阅上一个问题Link