在使用 https.request(options,callback) node.js 访问模板和 503 状态代码之前检查您的浏览器

Posted

技术标签:

【中文标题】在使用 https.request(options,callback) node.js 访问模板和 503 状态代码之前检查您的浏览器【英文标题】:Getting Checking your browser before accessing template and 503 status code with https.request(options,callback) node.js 【发布时间】:2017-09-27 08:00:54 【问题描述】:

我想获取这个页面的html进行解析(点击链接了解我要获取的内容)。

750-bond list

这是我请求此页面内容的代码

    var https = require("https");

    var fs = require("fs");

var options = 
    hostname: "www.prizebond.net",
    port: 443,
    path: "/dlist.php?num=455",
    method: "GET"

;

var response = "";

var req = https.request(options, function (res) 
    res.setEncoding("UTF-8");
    console.log(res.statusCode);
    res.on("data", function (chunk) 
        response += chunk;
    );

    res.on("end", function () 

        fs.writeFile("750-bond.html", response, function (err) 

            if (err) 
                console.log(err.message);
            
            console.log("File downloaded");

        );
        console.log("end");

    );
);

req.end();

现在的问题是,在我的 750-bont.html 文件中,我得到了奇怪的 “在访问 Prizebond.net 之前检查您的浏览器”的结果,而不是 原创内容。这是我打开 750 时得到的屏幕截图- 浏览器中的bond.html文件。

我做错了什么?以及如何获取该网页的原始内容?

【问题讨论】:

你做错了什么?您正在尝试抓取不想被抓取的网站 为什么要否决这个问题? 我想我应该等待 5 秒钟然后继续请求? 【参考方案1】:

你不能,除非你写一些更复杂的东西,但你可能不应该。

Cloudflare-protection 的目的是防止您试图实现不幸的事情。

您可以研究通过公共 API 访问您想访问的任何内容的可能性,或者例如,prizebond.net 提供的东西。

【讨论】:

以上是关于在使用 https.request(options,callback) node.js 访问模板和 503 状态代码之前检查您的浏览器的主要内容,如果未能解决你的问题,请参考以下文章

Node.js 中的 SPDY https.request()

python https request产生 nginx 499错误的解决

Node.js https.get 或 https.request 中的 Kerberos 身份验证

pytest文档46-关于https请求警告问题(InsecureRequestWarning: Unverified HTTPS request is being made)

InsecureRequestWarning: Unverified HTTPS request is being made.解决方法

request 的常用方法