如何获取HTTPS网页的内容?

时间:2016-08-02 07:00:55

标签: javascript node.js request

我希望通过在javascript上运行NodeJs代码来获取网页内容。我希望内容与我在浏览器中看到的内容完全相同。

这是URLhttps://www.realtor.ca/Residential/Single-Family/17219235/2103-1185-THE-HIGH-STREET-Coquitlam-British-Columbia-V3B0A9

我使用以下代码,但我在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!");
    });
})

保存的文件与我在浏览器中看到的内容无关。

1 个答案:

答案 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