如何爬取https协议的网站?

普通协议的可以轻松爬取,https协议不认证的也可以爬取,但是需要认证的就没有权限(response 403),这个具体的我也不是很懂,没有找到很好的资料,请大神科普一下,谢谢。

阅读 7.1k
2 个回答

已经自己解决,后续更新,最近需要整理更新其他项目

用request模块代替http。示例:

  1. 新建app.js文件,并写入以下代码

    var request = require('request');
    //var http = require('http');
    function getHtmlByUrl(href) {
        request(href, function(err, response, body) {
            if (!err && response.statusCode == 200) {
                console.log(body);//body即为目标页面的html
            } else {
                console.log('get page error url => ' + href);
            }
        });
    }
    getHtmlByUrl("https://www.baidu.com");
  2. 运行npm install request --save

  3. 运行node app.js

输出结果:

图片描述

推荐问题