java - 使用cheerio从html中提取csrf值

标签 java jquery postman cheerio

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

找到了解决方案并正在工作: var matchSETTINGS Cheerio.load(responseBody); 提取 var matchSETTINGS = text.match(var a= (.*););

最佳答案

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

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); 

enter image description here

关于java - 使用cheerio从html中提取csrf值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59960460/

相关文章:

java - 如何使用反射获取类的某些字段

javascript - jQuery UI 小部件 - 为什么这里有可用的更改方法?

c# - REST 错误 - 请求包含实体主体但没有内容类型 header 。推断的媒体类型应用程序/八位字节流不支持此资源

postman :表单数据请求中的字段排序

amazon-web-services - 使用 PostMan 上传多部分 Amazon S3 Rest API 时出现问题

java - JComboBox 未出现在 GridBagLayout 中

java - 使按钮拆分 JPanel - Java Swing

java - 将 isPresent() 和方法调用更改为 ifPresent()

jquery - FlexSlider 显示 3 张主图像,而不是一张

jquery - 在 JQUERY 代码中使用两个 CSS 属性