Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Programación General (http://www.forosdelweb.com/f14/)
-   -   WWW::Mechanize: (http://www.forosdelweb.com/f14/www-mechanize-563966/)

carlillos 07/03/2008 16:11

WWW::Mechanize:
 
Hola:

No se nada sobre Perl, pero me llamó la atención la página imagenesparahi5.org la cual sube imágenes a imageshack.us, pero resuelve extrayéndole los links y poniéndole los de imagenesparahi5.org. Lo cual le ha generado bastante tráfico por lo que puedo ver en Alexa, y lo único que hace es una especie de "leeching".

Si no me equivoco, está usando el módulo WWW::Mechanize: para hacer esto, y buscando por ahí encontré esto:

Código HTML:

#!/usr/bin/perl -w

use strict;

use WWW::Mechanize;



#Create an Object

my $mech = WWW::Mechanize->new();





foreach my $number ("0" .. "100") {

#Url to search images on.

my $url = "http://img301.imageshack.us/my.php?image=$number.jpg";



#Request webpage

$mech->get( $url );



#Search for links containing .jpg or .jpeg extensions

#in the url.

#Everything in between qr/ / is what to search for

#The . means any character usually but we use \ to escape it

# and make it literal. Then we did (jpe?g) which means to search for

#the text jpg or jpeg.

# The $ character means the end of the line/string.

# The i at the end means make everything case insensitive

 

my $link;

if ($link = $mech->find_link(tag => "a", url_regex => qr/\.(jpe?g)$/i)) {

    $mech->get($link);



    my $lurl = $link->url;

 

    #Take done.php?l=img301 out of the URL and replace with img301/

    $lurl =~ s/done\.php\?l\=img301\//img301\//;

 

    #Save image to file

    $mech->get( $lurl, ":content_file" => "$number.jpg");

}

else {

    print "Image $number.jpg not found\n";

  }

}

Para mí esto está como en chino, y no entiendo nada, ¿alguien me puede decir si estoy en lo cierto?

Saludos.

kidd 13/03/2008 17:52

Re: WWW::Mechanize:
 
Hola carlillos,

Ese script que tienes descarga imagenes de imageshack de manera automática.

Lo que hace es un loop del 0 al 100 y va intentando leer los urls que estarían de la siguiente manera:
http://img301.imageshack.us/my.php?image=1.jpg
http://img301.imageshack.us/my.php?image=2.jpg
http://img301.imageshack.us/my.php?image=3.jpg
http://img301.imageshack.us/my.php?image=4.jpg
http://img301.imageshack.us/my.php?image=5.jpg
... etc

Lee el url y del contenido del mismo saca todo los urls que terminen con .jpg, y les cambia la dirección para después proceder a salvar el archivo.

Saludos

yrduk 03/04/2008 11:28

Re: WWW::Mechanize:
 
Hola, soy el webmaster de imagenesparahi5.org, y no uso ese sistema... uso el API de ImageShack, el cual, haciendo un POST hacia su index, te devuelve un XML con todos los datos del upload... (todo en PHP)

Saludos!

carlillos 08/05/2008 20:21

Re: WWW::Mechanize:
 
Cita:

Iniciado por yrduk (Mensaje 2348575)
Hola, soy el webmaster de imagenesparahi5.org, y no uso ese sistema... uso el API de ImageShack, el cual, haciendo un POST hacia su index, te devuelve un XML con todos los datos del upload... (todo en PHP)

Saludos!

¿Lo que haces es legal? Digo, porque en la página se suben las imágenes a imageshack, pero le cambias los links hacia la tuya.

yrduk 21/05/2008 20:18

Respuesta: Re: WWW::Mechanize:
 
Cita:

Iniciado por carlillos (Mensaje 2396536)
¿Lo que haces es legal? Digo, porque en la página se suben las imágenes a imageshack, pero le cambias los links hacia la tuya.

Sí, es legal, si no imageshack no ofrecería un API.


La zona horaria es GMT -6. Ahora son las 23:34.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.