Node.js アプリで HTML ページのコンテンツを取得しようとしています。このコードを見つけました: Node.js / Express で、ページを「ダウンロード」して HTML を取得するにはどうすればよいですか? (用心棒の答え)、うまくいくようです。コードを開始しようとすると、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>
恒久的に同じ場所に移動されますか、それともサーバー上の何らかのセキュリティですか? または、コードを間違えましたか?(ただし、Googleおよび私がテストした他のすべてのサイトで動作します)。
問題なくpdfのページでテストしたので、問題を引き起こすのは「.xml」ではないかと思います(読み取り不能な文字の束だけです)。
クライアントとの話し合いの後、別の方法 (直接ダウンロード) でページを取得しますが、問題なく動作します。私はまだc.Pu.1の回答を受け入れていますが、なぜリダイレクトリンクがアプリがたどるリンクと同じなのか疑問に思っています。