javascript - NodeJS HttpGet 方法在 Wiki 上不起作用

标签 javascript html node.js http http-get

目标

下载 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/

相关文章:

node.js - NodeJS - fork 进程(1 个虚拟机,多个处理器)VS 多个虚拟机,1 个进程

javascript - 在 React 中单击按钮时获取文本框值的最佳方法是什么?

jquery - 无法在右上角设置进度条中的文本

HTML 不间断空格无法正常工作

php - 无法删除页脚中的列

Node.js - 在回复 GET 之前如何等待 POST 内容

javascript - 如何在 AngularJS 服务中添加到 $resource 的路由

javascript - jquery 移动更改页面,带有来自 javascript 的页面转换

javascript - 选项根据用户的选择逐步显示

javascript - Node.js:查询聚合不起作用(mongodb)