首页 > 解决方案 > 用cheerio从html中提取csrf值

问题描述

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

找到解决方案并开始工作: var matchSETTINGS Cheerio.load(responseBody); 提炼var matchSETTINGS = text.match(var a= (.*););

标签: javajquerypostmancheerio

解决方案


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

Postman 支持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); 

在此处输入图像描述


推荐阅读