首页 > 解决方案 > 使用节点服务器爬虫选择 Web 窗口提示

问题描述

我正在尝试使用我的 Node Crawler ( https://github.com/bda-research/node-crawler ) 访问网页,但我需要在窗口提示中输入凭据。

当尝试使用爬虫访问页面时,我会直接发送到 401 页面(如果我取消提示,我会在 Chrome 中被定向到该页面)。

var Crawler = require("crawler");    

var c = new Crawler({
  callback: function (error, res, done) {
    if (error) {
      console.log(error);
    } else {
      var $ = res.$;
      // $ is Cheerio by default
      //  a lean implementation of core jQuery designed specifically for the server
      console.log($("title").text()); // logs 401
    }
    done();
  }
});

c.queue(url);

谢谢!

标签: javascripthtmlnode.jsweb-crawler

解决方案


该文档引用了另一个具有选项的库

如果您希望这些选项是全局的,则可以将这些选项传递给 Crawler() 构造函数,或者如果您希望它们特定于该项目(覆盖全局选项),则作为 queue() 调用中的项目

此选项列表是mikeal 请求选项的严格超集,将直接传递给 request() 方法。

该文档显示了一个auth选项

auth - 包含用户值的哈希 || 用户名,通过 || 密码和立即发送(可选)。请参阅上面的文档。

看起来像这样的东西会起作用,虽然我没有测试

var Crawler = require("crawler");    

var c = new Crawler({
  auth: {
    user: 'username',
    pass: 'password'
  },
  callback: function (error, res, done) {
    if (error) {
      console.log(error);
    } else {
      var $ = res.$;
      // $ is Cheerio by default
      //  a lean implementation of core jQuery designed specifically for the server
      console.log($("title").text()); // logs 401
    }
    done();
  }
});

c.queue(url);

推荐阅读