Java 使用cheerio从html中提取csrf值
目标: 1.从我的GET请求响应正文中提取Java 使用cheerio从html中提取csrf值,java,jquery,postman,cheerio,Java,Jquery,Postman,Cheerio,目标: 1.从我的GET请求响应正文中提取csrf值 2.将提取的“csrf”值存储在环境变量中 3.在后续POST请求中使用它 找到解决方案并开始工作: 变量匹配设置和IO.load(responseBody); Extractvarmatchsettings=text.match(vara=(.*)这有点复杂,但可以通过多种方式实现。这里我向您展示一种静态方式,根据您的要求进行更改 Postman支持库,您可以使用它来解析HTML响应 var html = cheerio(responseB
csrf
值
2.将提取的“csrf”值存储在环境变量中
3.在后续POST请求中使用它
找到解决方案并开始工作:
变量匹配设置和IO.load(responseBody);
Extract
varmatchsettings=text.match(vara=(.*)代码>这有点复杂,但可以通过多种方式实现。这里我向您展示一种静态方式,根据您的要求进行更改
Postman支持库,您可以使用它来解析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);
您的响应正文不是有效的JSON
。这些是DOM
元素,它们与您原来的问题不同。我可以告诉你一种方法。但无法为您编写代码。您必须通过添加控制台日志来找到所需的元素,没有其他方法。