wget --save-cookies .cookies/rapidshare --post-data "login=el_login&password=el_password" --no-check-certificate -O - https://ssl.rapidshare.com/cgi-bin/premiumzone.cgi > /dev/null
Pero como no todo puede ser fácil, los "amigos" de rapidshare decidieron cambiar la forma de hacer login en el sitio, de manera que ya no puedo guardar las cookies como antes.
Buscando por la red encontré un plugin de firefox para exportar cookies pero no quiero estarle instalando cosas a firefox, embasurándolo pués. También encontré scripts en python que hacen el trabajo pero me dió flojera usar python y tener que "entender" el script, así que decidí intentar sacar las cookies "a mano" yo mismo.
El archivo de cookies de firefox 3 es una base de datos sqlite que se encuentra (en Linux) en $HOME/.mozilla/firefox
En este archivo hay una tabla con el nombre moz_cookies con los siguientes campos:
id INTEGER PRIMARY KEY,
name TEXT,
value TEXT,
host TEXT,
path TEXT,
expiry INTEGER,
lastAccessed INTEGER,
isSecure INTEGER,
isHttpOnly INTEGER
Para bajarme la mayoría de las cosas de rapidshare uso wget con la opción --load-cookies. Wget espera un archivo de cookies con el siguiente formato:
.rapidshare.com TRUE / FALSE 1731510000 enc cadena
El formato es explicado aquí: http://kb.mozillazine.org/Cookies.txt
Cada uno de estos campos debe estar separado por un "TAB".
Para extraer esta información debemos hacer lo siguiente:
- Entrar en la página deseada y autenticarse.
- Verificar en el navegador que se tiene la cookie (depende del navegador... investiga!!!).
- Copiar el archivo de cookies a un lugar "seguro" (/tmp por ejemplo).
- Ejecutar lo siguiente (en Linux):
$ sqlite3 cookies.sqlite
sqlite> .separator \t
sqlite> .output /tmp/cookies.txt
sqlite> select host, "TRUE", path, "FALSE", expiry, name, value from moz_cookies where host = '.rapidshare.com' and name = 'enc';
sqlite> .quit
En /tmp deberíamos tener el archivo cookies.txt con los resultados separados por "tab".
Con el comando:
$ cat -vte /tmp/cookies.txt
deberíamos observar el archivo de cookies con los valores seleccionados y con el caracter "^I" de separador. - Utilizar este archivo de cookies con wget.
Un solo detalle más, si se quiere alargar la fecha de expiración se puede sustituir el expiry en el por algo como expiry+3600*24*365, con lo que le estaríamos añadiendo un año a la fecha de expiración de la cookie.
Espero que esto sirva de ayuda.