javascript - 使用节点服务器爬虫选择 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);
谢谢!
解决方案
该文档引用了另一个具有选项的库
如果您希望这些选项是全局的,则可以将这些选项传递给 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);
推荐阅读
- image - 如何通过谷歌脚本将图像添加到谷歌文档并进行文本换行
- javascript - node.js中如何同步连接mssql服务器
- c# - 如何获取 ChatBot 中 AdaptiveCard 控件更改的值?
- amazon-web-services - 在使用 Amazon Cognito 进行身份验证时,如何使 AWS AppSync GraphQL API 可公开访问?
- python - 如何在 Tkinter 画布中重绘一行
- ios - 如何填充自定义单元格的 UIPickerView
- angular - 在 Angular 服务中编写可共享的方法
- matlab - 实现涉及双重求和的脉冲响应
- python - 在 python 中使简单的绘图平滑
- java - Gradle 使用最新版本的 TestNG 而不是声明的版本