Извлечь значение CSRF из html с приветствием - PullRequest
0 голосов
/ 29 января 2020

Цель: 1. Извлечь значение csrf из моего тела ответа на запрос GET 2. Сохранить извлеченное значение 'csrf' в переменной среды 3. Использовать его в последующем запросе POST.

Нашел решение и работает: var matchSETTINGS cheerio.load (responseBody); Выписка var matchSETTINGS = text.match(var a= (.*););

1 Ответ

0 голосов
/ 29 января 2020

Это немного сложно, но достижимо, используя различные способы. Здесь я покажу вам способ c, измените его в соответствии с вашими требованиями.

Почтальон поддерживает библиотеку 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

...