Estoy tratando de iniciar sesión en un sitio web utilizando la carga útil data formularios. Requiere un token _csrf que se genera de forma única cada vez que se abre la página de login de sesión. Estaba tratando de acceder a la página de inicio de sesión para tomar la identificación _csrf y luego publicar la carga útil en la misma sesión.
Mi código python pudo hacerlo con requests.session() pero tengo problemas con axios.
mi codigo python
login = {'_csrf': 0, 'email': 'mail@example.com', 'password': "password"} with requests.Session() as s: url = "https://example.com/login.html" res = s.get(url, headers={'User-Agent': 'Mozilla/5.0'}) soupy = soup(res.content, 'html.parser') _csrf = soupy.find('meta', attrs={'name': "csrf-token"})['content'] login['_csrf'] = _csrf res = s.post(url, data=login, headers={'User-Agent': 'Mozilla/5.0'}Mi código Node.js
var url = "https://example.com/login.html"; let response = await axios.get(url,{ headers:{ 'User-Agent': 'Mozilla/5.0' } }) .then(function(response){ let soup = cheerio.load(response.data, null, false); var _csrf = soup('meta[name="csrf-token"]').attr('content'); var login = {'_csrf': _csrf, 'email': 'mail@example.com', 'password': "password"}; response = axios.post(url,{ headers:{ 'User-Agent': 'Mozilla/5.0' }, data: login, }).catch((e)=> {console.log(e)}); console.log(response.data); }); pero no funciona porque aparece un error de discrepancia _csrf . ¿Qué puedo hacer para que axios funcione en una sesión?