Recetas de uso de wget y curl
¿Cómo llenar un formulario desde la linea de comando?
formfind
- Primero hay que conseguir los nombres de los campos que deben ser enviados. Para eso puede ayudar el script formfind que se puede bajar de la siguiente manera:
curl https://raw.github.com/bagder/curl/master/perl/contrib/formfind
- Ahora hay que bajar la página web que tiene el formulario, por ejemplo:
curl http://www.ottobib.com/ >pagina.txt
- Ahora tenemos que extraer la información sobre el formulario, usando formfind:
formfind <pagina.txt
eso genera una salida como la siguiente:
--- FORM report. Uses POST to URL "/" Input: NAME="utf8" VALUE="✓" (HIDDEN) Input: NAME="authenticity_token" VALUE="09sCjPhQInaKIs0fgg6ftHpseVTg1jLnrCpi6LtODeI=" (HIDDEN) Textarea: NAME="search" Input: NAME="citetype" VALUE="mla" (RADIO) Input: NAME="citetype" VALUE="apa" (RADIO) Input: NAME="citetype" VALUE="chicago" (RADIO) Input: NAME="citetype" VALUE="bibtex" (RADIO) Input: NAME="citetype" VALUE="wp" (RADIO) --- end of FORM
Para usar esta información y llenar el formulario haríamos, por ejemplo, lo siguiente:
Con curl:
curl -d utf8="✓" -d authenticity_token="09sCjPhQInaKIs0fgg6ftHpseVTg1jLnrCpi6LtODeI=" -d search="texto que uno quiera poner" -d citetype="bibtex" http://www.ottobib.com/
Con wget:
wget --post-data 'utf8=\✓&authenticity_token=09sCjPhQInaKIs0fgg6ftHpseVTg1jLnrCpi6LtODeI&search=texto%20que%20uno%20quiera%20poner&citetype=bibtex' http://www.ottobib.com/
Ojo: con los '&' en wget, que actúan como separadores, hay que ver bien cóom se pone un '&' y que no lo identifique como separador de campos… en ese caso sugiero usar curl