Ver Mensaje Individual
  #5 (permalink)  
Antiguo 16/05/2020, 15:18
prueba230683
 
Fecha de Ingreso: abril-2011
Mensajes: 170
Antigüedad: 13 años
Puntos: 68
Respuesta: Formulario post - Conocer url para realizar envío masivo

Cita:
si a traves de algun script en php o python, puedo hacer un post de forma masiva (bucle for) con los tres campos obligatorios del formulario (Nº de poliza, NIF, Importe) y se me descarguen los pdf sin tener que acceder a la web.
Puedes automatizarlo con cURL, pero ten cuidado no les vayas a tirar abajo el servidor

En un sitio seguro deberían tener captcha para evitar automatizaciones de este tipo.

Un ejemplo de cómo se hace:

https://stackoverflow.com/a/22165451/13312580

Solamente faltaría enviar los datos via POST. Para ello debes utilizar curl_setopt:

Código PHP:
Ver original
  1. // ...
  2. curl_setopt($ch, CURLOPT_POST, 1);
  3. curl_setopt($ch, CURLOPT_POSTFIELDS, "formConsultaReciboPdf:nFijo=valor&formConsultaReciboPdf:dni=valor&formConsultaReciboPdf_SUBMIT=1");
  4. // ...

El código completo sería algo así:

Código PHP:
Ver original
  1. $source = "http://www.zaragoza.es/consultaRecibosWeb/consultaReciboAguaPdf.faces";
  2. $ch = curl_init();
  3. curl_setopt($ch, CURLOPT_URL, $source);
  4. curl_setopt($ch, CURLOPT_POST, 1);
  5. curl_setopt($ch, CURLOPT_POSTFIELDS, "formConsultaReciboPdf:nFijo=valor&formConsultaReciboPdf:dni=valor&formConsultaReciboPdf_SUBMIT=1");
  6. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  7. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // esto en tu caso puede ser necesario
  8. $data = curl_exec ($ch);
  9. $error = curl_error($ch);
  10. curl_close ($ch);
  11.  
  12. $destination = "./files/fichero.pdf";
  13. $file = fopen($destination, "w+");
  14. fputs($file, $data);
  15. fclose($file);

Evidentemente, quedaría hacer el bucle y poner nombres distintos a cada fichero, pero eso ya es trivial.

Última edición por prueba230683; 16/05/2020 a las 15:33