我希望通过在javascript
上运行NodeJs
代码来获取网页内容。我希望内容与我在浏览器中看到的内容完全相同。
我使用以下代码,但我在405
中获得response
。
var fs = require('fs');
var link = 'https://www.realtor.ca/Residential/Single-Family/17219235/2103-1185-THE-HIGH-STREET-Coquitlam-British-Columbia-V3B0A9';
var request = require('request');
request(link, function (error, response, body) {
fs.writeFile("realestatedata.html", body, function(err) {
if(err) {
console.log('error in saving the file');
return console.log(err);
}
console.log("The file was saved!");
});
})
保存的文件与我在浏览器中看到的内容无关。
答案 0 :(得分:0)
我认为真正的答案会更容易理解,因为我的评论被截断了。
服务器不支持您发送的请求的方法(405 Method Not Allowed - 请求行中指定的方法不允许由Request-URI标识的资源。响应必须包含允许标头包含所请求资源的有效方法列表。)。您是否有关于HTTP响应的更多信息? 您是否尝试过以下代码而非您的代码?
request('https://www.realtor.ca/Residential/Single-Family/17219235/2103-1185-THE-HIGH-STREET-Coquitlam-British-Columbia-V3B0A9').pipe(fs.createWriteStream('realestatedata.html'))
您还可以查看In Node.js / Express, how do I "download" a page and gets its HTML?。
请注意,无论如何,当您只打开html时页面将不会呈现相同的方式,因为它还需要许多其他资源(显示页面时会完成110个请求)。 我认为以下答案可以帮助您下载整个页面。 https://stackoverflow.com/a/34935427/1630604