当前位置:网站首页>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))
}
});
}边栏推荐
- Keng dad's "dedication blessing": red packet technology explosion in Alipay Spring Festival Gala
- Summary ranges of leetcode topic resolution
- Code quality level 3 - readable code
- 6-闪耀的激光-CALayer 的应用
- 6、 Web Architecture Design
- Use newbeecoder UI implements data paging
- 125. Valid Palindrome
- usb peripheral 驱动 - configfs
- Multi Chain and cross chain are the future
- Integers and operators in go data types (3)
猜你喜欢

Talk about the implementation principle of @autowired

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

给你的win10装一个wget

渲染效果图哪家好?2022最新实测(四)

636. Exclusive Time of Functions

坑爹的“敬业福”:支付宝春晚红包技术大爆发
![[cloud computing] GFS ideological advantages and architecture](/img/98/2a4ef0ca805add24d431dac9808903.png)
[cloud computing] GFS ideological advantages and architecture

谈谈 @Autowired 的实现原理

Basic use of check boxes and implementation of select all and invert selection functions

In June, China database industry analysis report was released! Smart wind, train storage and regeneration
随机推荐
[qnx hypervisor 2.2 user manual]5.6.1 silent device during guest shutdown
Why use growth neural gas network (GNG)?
[QNX Hypervisor 2.2用户手册]6.1 使用QNX Hypervisor系统
论文阅读【Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset】
鸿蒙读取资源文件
谈谈 @Autowired 的实现原理
986. Interval List Intersections
Leetcode topic analysis count primes
438. Find All Anagrams in a String
Flutter achieves the effect of selecting seats in the cinema!
Talk about the implementation principle of @autowired
Analysis of JMeter pressure measurement results
1-gradients, shadows, and text
[cloud computing] GFS ideological advantages and architecture
Restore the default routing settings of the primary network card
通信方式总结及I2C驱动详解
USB peripheral driver - debug
Paper reading [quovadis, action recognition? A new model and the dynamics dataset]
usb peripheral 驱动 - configfs
Summary ranges of leetcode topic resolution