Estoy tratando de descargar un pdf de un sitio web.
El sitio web está hecho con el marco ZK, y revela una URL dinámica al PDF por una ventana de tiempo cuando se escribe un número de identificación en una barra de entrada. Este paso es bastante fácil y puedo obtener la URL del PDF que se abre en el navegador en una etiqueta incrustada.
Sin embargo, me ha sido imposible encontrar la manera de descargar el archivo a mi computadora. Durante días, he intentado y leído todo, desde esto , hasta esto , hasta esto .
Lo más cercano que he podido obtener con este código:
let [ iframe ] = await page.$x('//iframe'); let pdf_url = await page.evaluate( iframe => iframe.src, iframe) let res = await page.evaluate( async url => await fetch(url, { method: 'GET', credentials: 'same-origin', // usefull when we are logged into a website and want to send cookies responseType: 'arraybuffer', // get response as an ArrayBuffer }).then(response => response.text()), pdf_url ) console.log('res:', res); //const response = await page.goto(pdf); fs.writeFileSync('somepdf.pdf', res);Esto da como resultado un archivo PDF en blanco que tiene un tamaño de 92K.
Mientras que el archivo que estoy tratando de obtener es de 52K. Sospecho que el back-end podría estar enviándome un archivo pdf 'ficticio' porque mis encabezados en la solicitud de recuperación podrían no ser correctos.
¿Qué más puedo probar?
Aquí está el enlace a la página PDF.
Puede usar el número de identificación aleatorio que encontré: '1705120630'