我正在尝试使用 Node.js 应用程序获取 HTML 页面的内容。我找到了这段代码:在 Node.js / Express 中,我如何“下载”页面并获取其 HTML?(yojimbo 回答),这似乎运作良好。当我尝试启动代码时,我得到了 301 Moved Permanently 的 HTML 结果,但重定向链接与我发送的相同!
var util = require("util"),
http = require("http");
var options = {
host: "www.mylink.com",
port: 80,
path: "/folder/content.xml"
};
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();
回报是:
30 Jul 13:08:52 - <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<p>The document has moved <a href="http://mylink.com/folder/content.xml"<here</a>.</p>
<hr>
<adress>Apache/2.2.22 (Ubuntu) Server at www.mylink.com Port 80</adress>
</body></html>
它是永久移动到同一个地方还是只是服务器上的某种安全措施?还是我在代码中犯了错误?(但它适用于谷歌和我测试的所有其他网站)。
我怀疑它是导致问题的“.xml”,因为我什至用 pdf 中的页面测试没有问题(只是一堆不可读的字符)。
在与客户讨论后,我将通过另一种方式(直接下载)获取该页面,这可以正常工作。我仍然接受 c.Pu.1 的答案,但我仍然想知道为什么重定向链接与应用程序遵循的链接相同。