【问题标题】:Extract csrf value from html with cheerio用cheerio从html中提取csrf值
【发布时间】:2020-02-05 00:39:07
【问题描述】:

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

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

【问题讨论】:

  • 您的回复正文不是有效的JSON。这些是DOM 元素

标签: java jquery postman cheerio


【解决方案1】:

这有点复杂,但可以通过多种方式实现。这里我给你看一个静态的方式,根据你的要求改变它。

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

【讨论】:

  • 这与您的原始问题不同。我可以告诉你一种方法。但不能为你编码。您必须通过添加控制台日志来找到所需的元素,没有其他方法。
猜你喜欢
  • 2023-03-31
  • 2021-08-12
  • 1970-01-01
  • 2023-03-18
  • 2015-10-11
  • 2020-09-27
  • 2013-06-27
  • 1970-01-01
  • 2022-01-26
相关资源
最近更新 更多