当前位置:网站首页>Node request module cookie usage
Node request module cookie usage
2022-06-23 08:49:00 【An_ s】
Preface
Many websites have 302 perhaps 301 Imitative reptile , The response header will take set-cookie, Then we use node How to deal with it ?
Start
Concise Edition
let request = require("request");
// Open record cookie, Automatically bring it when redirecting 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'
},
// Redirect
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("... Jump over ...");
// console.log(response);
// console.log(body);
}
});
}File version
let request = require("request");
// Created in the root directory cookie.json file
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'
},
// Redirect
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("... Jump over ...");
// console.log(response);
// console.log(body);
}
});
}Recommended version
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("... Jump over ...");
// console.log(response);
// console.log(body);
console.log("cookie by :", j.getCookieString(url))
}
});
}边栏推荐
- vector的深度剖析及模拟实现
- Fraction to recursing decimal
- Keng dad's "dedication blessing": red packet technology explosion in Alipay Spring Festival Gala
- Paper reading [quovadis, action recognition? A new model and the dynamics dataset]
- Summary ranges of leetcode topic resolution
- 986. Interval List Intersections
- Driver Architecture & platform platform bus driver model
- Tencent cloud arm server evaluation practice
- When easynvr service is started, video cannot be played due to anti-virus software interception. How to deal with it?
- The fourth online workshop review
猜你喜欢

“教练,我想打篮球“ —— 给做系统的同学们准备的 AI 学习系列小册

【学习资源】理解数学和热爱数学

Self organizing map neural network (SOM)

173. Binary Search Tree Iterator

Introduction to typescript and basic types of variable definitions

What are the PCB characteristics inspection items?

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

Geoserver添加mongoDB数据源

In June, China database industry analysis report was released! Smart wind, train storage and regeneration

Which one is better for rendering renderings? 2022 latest measured data (IV)
随机推荐
[paper notes] catching both gray and black swans: open set supervised analog detection*
6、 Web Architecture Design
670. Maximum Swap
[QNX Hypervisor 2.2用户手册]6.1 使用QNX Hypervisor系统
Unity grid programming 08
523. Continuous Subarray Sum
670. Maximum Swap
Monitor the cache update of Eureka client
力扣之滑动窗口《循序渐进》(209.长度最小的子数组、904. 水果成篮)
鸿蒙读取资源文件
When easynvr service is started, video cannot be played due to anti-virus software interception. How to deal with it?
Part of speech family
636. Exclusive Time of Functions
Top 25 most popular articles on vivo Internet technology in 2021
How to restore visualizations and dashboards after kibana rebuilds the index
Set interface and set sub implementation classes
[qnx hypervisor 2.2 user manual]6.2 network
Summary of communication mode and detailed explanation of I2C drive
【云原生 | Kubernetes篇】Kubernetes原理与安装(二)
Android kotlin coroutines KTX extension