当前位置:网站首页>node request模块cookie使用
node request模块cookie使用
2022-06-23 08:37:00 【An_s】
前言
很多网站都有302或者301仿爬虫, 响应头就会带上set-cookie, 那我们用node如何处理呢?
开始
简洁版
let request = require("request");
// 开启记录cookie,重定向时自动带上cookie
request = request.defaults({jar: true});
function login_redirect(url) {
console.log("url: ", url);
let options = {
url: url,
method: "GET",
headers: {
"User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.62 Safari/537.36'
},
// 重定向
followRedirect: false
}
request(options, function(error, response, body) {
console.log("...login_redirect.....");
// console.log(response.statusCode);
// console.log(response.headers);
if (response.statusCode == 302 || response.statusCode == 301) {
login_redirect(response.headers.location);
} else {
console.log("...跳转完...");
// console.log(response);
// console.log(body);
}
});
}文件版
let request = require("request");
// 在根目录创建cookie.json文件
const FileCookieStore = require('tough-cookie-filestore');
const cookieJsonStore = new FileCookieStore('cookies.json')
const j = request.jar(cookieJsonStore);
request = request.defaults({ jar : j })
function login_redirect(url) {
console.log("url: ", url);
let options = {
url: url,
method: "GET",
headers: {
"User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.62 Safari/537.36'
},
// 重定向
followRedirect: false
}
request(options, function(error, response, body) {
console.log("...login_redirect.....");
// console.log(response.statusCode);
// console.log(response.headers);
if (response.statusCode == 302 || response.statusCode == 301) {
login_redirect(response.headers.location);
} else {
console.log("...跳转完...");
// console.log(response);
// console.log(body);
}
});
}推荐版
let request = require("request");
const j = request.jar();
request = request.defaults({jar:j});
function login_redirect(url) {
console.log("url: ", url);
let options = {
url: url,
method: "GET",
headers: {
"User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.62 Safari/537.36'
},
followRedirect: false
}
request(options, function(error, response, body) {
console.log("...login_redirect.....");
// console.log(response.statusCode);
// console.log(response.headers);
if (response.statusCode == 302 || response.statusCode == 301) {
login_redirect(response.headers.location);
} else {
console.log("...跳转完...");
// console.log(response);
// console.log(body);
console.log("cookie为:", j.getCookieString(url))
}
});
}边栏推荐
- [QNX Hypervisor 2.2用户手册]5.6.1 Guest关机时静默设备
- Chapter 1 open LDAP master-slave synchronization tower construction
- kibana 重建index后,如何恢复Visualizations和 Dashboards
- Jetpack family - ViewModel
- 通信方式总结及I2C驱动详解
- (resolved) difference between leftmost prefix and overlay index
- Which one is better for rendering renderings? 2022 latest measured data (IV)
- Testing -- automated testing selenium (about API)
- Talk about the implementation principle of @autowired
- Driver Architecture & platform platform bus driver model
猜你喜欢

Which one is better for rendering renderings? 2022 latest measured data (IV)

Introduction to typescript and basic types of variable definitions

坑爹的“敬业福”:支付宝春晚红包技术大爆发

高通9x07两种启动模式

Le rapport d'analyse de l'industrie chinoise des bases de données a été publié en juin. Le vent intelligent se lève, les colonnes se régénèrent

测试-- 自动化测试selenium(关于API)

The most commonly used 5-stream ETL mode

What are the PCB characteristics inspection items?

Object. Defineproperty() and data broker

Linux Mysql安装
随机推荐
[advanced Android] kotlin notes
The results of CDN node and source station are inconsistent
vector的深度剖析及模拟实现
[QNX Hypervisor 2.2用户手册]6.1 使用QNX Hypervisor系统
How can I handle the "unable to load" exception when easyplayer plays webrtcs?
297. Serialize and Deserialize Binary Tree
7-palette-calayer and touch
The first day of employment more than ten years ago
Multi-scale feature combination in target detection
[paper notes] catching both gray and black swans: open set supervised analog detection*
Map interface and its sub implementation classes
4- draw ellipse, use timer
Go data types (II) overview of data types supported by go and Boolean types
Summary of Arthas vmtool command
[QNX Hypervisor 2.2用户手册]5.6.1 Guest关机时静默设备
986. Interval List Intersections
鸿蒙读取资源文件
单编内核驱动模块
论文阅读【Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset】
Integers and operators in go data types (3)