He seguido con mi intento de crear una aplicación en Perl que me descargue los enlaces "limpios" de Megaupload para bajarme series de la página seriesyonkis.com, y por lo tanto evitar la publicidad.
He escrito lo siguiente:
Using perl Syntax Highlighting
use LWP::UserAgent;
use HTML::SimpleLinkExtor;
my $ua = LWP::UserAgent->new;
$ua->agent("Mozilla");
my $req = HTTP::Request->new(POST => 'http://www.seriesyonkis.com/temporada/como-conoci-a-vuestra-madre/191/');
my $res = $ua->request($req);
$extor = HTML::SimpleLinkExtor->new();
$extor->parse($res->content);
@all_links = $extor->links;
foreach $all_links(@all_links) {if ($all_links=~ /capitulo-/){push (@enlaces,$all_links)}}
foreach $enlaces(@enlaces)
{my $req = HTTP::Request->new(POST => $enlaces);
my $res = $ua->request($req);
$extor = HTML::SimpleLinkExtor->new();
$extor->parse($res->content);
@links = $extor->links;
foreach $links(@links) {if ($links=~ /\/descargar/)
{push (@enlaces1,$links);last}}}
print join "\n" , @enlaces1;
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
Lo que hago es, 1º, me conecto a la página web donde está la primera temporada de esta serie y extraigo todos los enlaces de la misma. 2º, recorro el array de enlaces y guardo en el
array @enlaces los que contengan "capitulo-". 3º, visito cada uno de esos vínculos, extraigo todos los enlaces de cada uno y guardo en el array @enlaces1 los vínculos de descarga de cada capítulo. El last() de la penúltima línea es porque hay varios vínculos de descarga con varios idiomas y solo me interesa el primero (español).
Al llegar a este punto ya tengo en el array @enlaces1 todos los vínculos de la primera temporada de esta serie y se supone que al visitar cada uno, obtendré el esperado enlace final a la página de MegaUpload que contiene cada uno de ellos, pero... al cargar esa última página no encuentro los enlaces a MegaUpload. Cuando cargo esta última página con mi navegador Firefox y uso la opción "ver código fuente" veo lo siguiente:
Using html4strict Syntax Highlighting
<html><head><title>Descargar video de megaupload</title><script type="text/javascript" src="../../n.js"></script></head>
<body>
<script type="text/javascript">sy1();</script>
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Si no me equivoco, la página se genera ejecutando el código JavaScript que se encuentra en "../../n.js".
¿Qué puedo hacer para cargar esta última página y poder así extraer los deseados vínculos?
No sé si me he explicado bien, espero que se me entienda. Por último, si bien lo que he escrito "funciona" ¿sobra alguna línea? ¿se podría hacer de una forma más elegante y/o efectiva? Una última pregunta: al enviar el código que escribimos ¿qué es preferible, el corta y pega que he hecho o adjuntar el fichero *.pl?
Por si es de utilidad para responder, los vínculos a la última página que se obtienen son como el siguiente:
http://www.seriesyonkis.com/lista-series/descargar/n/%C8%C9%C8%A4%B7%AA%CD%CE/?id=%C8%C9%C8%A4%B7%AA%CD%CE¿serán todos esos caracteres parámetros que utiliza la aplicación JavaScript para cargar la página adecuada?