邮递员:从带有cheerio的html中提取csrf值

问题描述 投票:0回答:1

目标:1.从我的GET请求响应正文中提取csrf值2.将提取的“ csrf”值存储在环境变量中3.在后续的POST请求中使用它。

这是我的邮递员回复正文-Postman response body

我可以使用以下代码提取'var SETTINGS'。

const $ = cheerio.load(responseBody);
const text = $('script[data-container=true]').html(); 
var matchSETTINGS = text.match(/var SETTINGS = (.*);/);
console.log(matchSETTINGS)

如何从提取的“ var SETTINGS”中提取csrf?

java jquery postman cheerio
1个回答
0
投票

这有点复杂,但是可以通过多种方式实现。在这里,我向您展示了一种静态方式,请根据您的要求进行更改。

邮递员支持cheerio库,可用于解析HTML响应。

var html = cheerio(responseBody);

//get script tag data
var htmlData = html[14].children[1].children[5].children[0].data;

var csrfIndex = htmlData.search(/'csrf'/i);
var dataBeforeCsrf = htmlData.slice(0, csrfIndex);

//remove content before csrf node
htmlData = htmlData.replace(dataBeforeCsrf, '');

//to make it in right format of JSON, replace single quote with double, 
//remove ; and add bracket

htmlData = htmlData.replace(/'/g, '"');
htmlData = htmlData.replace(';', '');

//parse to JSON 
var jsonData = JSON.parse('{' + htmlData);

//print csrf
console.log(jsonData.csrf); 

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.