Tengo este enlace https://nfse.blumenau.sc.gov.br/contrib/app/nfse/rel/rp_nfse_v23.aspx?s=61154301&e=00165960000101&f=2BED3D1E8 (si intenta acceder, le pedirá que resuelva un captcha pero mientras ya tenga la sesión, el dramaturgo no tiene por qué preocuparse).
OUT page.goto: net::ERR_ABORTED at https://nfse.blumenau.sc.gov.br/contrib/app/nfse/rel/rp_nfse_v23.aspx?s=61154301&e=00165960000101&f=2BED3D1E8¿Alguien sabe por qué el dramaturgo no puede acceder a él? Necesito descargar el PDF Buffer de este enlace.
Encontré una solución:
Primero no concatené la cookie en la llamada de la función.
const cook = 'ASP.NET_SessionId=' + cookie; await setCookie(cook, urlFinal);Luego usé el módulo obtenido para colocar la cookie y obtener el búfer del pdf:
response = await got(urlFinal, {cookieJar}).buffer();Además: a veces devolvía un pdf en blanco (creo que por el tiempo de espera para cargarlo). Así que inserté un bucle para verificar el tamaño del búfer e intenté 20 veces hasta que obtuvo más de 'X' de longitud.
for (let j = 0;j<=25;j++){ console.log('Entrei no looping ==> ' + j); response = await got(urlFinal, {cookieJar}).buffer(); if (response.toString().length>=10000){ j=21; } } console.log('tamanho do buffer ==> ' + response.toString().length);Puede utilizar la fetch de obtención. Algo como esto:
const fetchResponse = browserContect.request.get('https://nfse.blumenau.sc.gov.br/contrib/app/nfse/rel/rp_nfse_v23.aspx?s=61154301&e=00165960000101&f=2BED3D1E8') const pdfBuffer = await fetchResponse.body();Ya lo intenté pero tampoco funcionó:
const cookie = (await page.context().cookies()).filter(cookie => cookie.name === 'ASP.NET_SessionId') .map(cookie => cookie.value)[0]; console.log(cookie); const cookieJar = new CookieJar(); const setCookie = promisify(cookieJar.setCookie.bind(cookieJar)); await setCookie('ASP.NET_SessionId=' + cookie, urlFinal); const response = await got(urlFinal, {cookieJar}).buffer();es realmente un desafío. Porque si no voy con page.goto, pierdo la sesión. El siguiente código resolvería el problema.
await page.goto(urlFinal);