[Reto] Bot en PHP

Iniciado por lnvisible, 16 Septiembre 2011, 00:38 AM

0 Miembros y 1 Visitante están viendo este tema.

lnvisible

Hay un tipo de desafíos que se ven en las películas, con los músicos (o raperos, que son músicos de la voz) entran en un pique, uno hace algo y el otro tiene que hacerlo y luego superarlo. También los hay que lo hacen con mates de valoncesto y otras cosas.

Esto es un reto a ese estilo, consiste en ir añadiendo algo al bot para hacerlo más parecido a una persona en la navegación (con cookies, con referer, con todo eso), además para que sea más fácil indicarle los parámetros que tiene que rellenar (por ejemplo muchos formularios tienen campos hidden, podría rellenarlos él mismo), para que sea más fácil parsear el html después, para que sea más fácil usar proxies... el límite lo pone vuestra imaginación.

Creo que puede ser un reto interesante, entretenido, productivo y del que todos saquemos el divertirnos, un código interesante y aprender y hacer algo útil. Vosotros diréis.

Esto ha venido inspirado por este mensaje:

Cita de: lnvisible en 16 Septiembre 2011, 00:32 AM
Y lo que yo digo es que si entre todos juntamos un poquito que aporte cada uno lo podemos hacer mucho mejor.

Por ejemplo, lo que has hecho madpitbull quedaría así:

Código (php) [Seleccionar]
<?php
class PHPBot {

    private 
$ch;

    function 
__construct() {
      
$this->ch curl_init();
      
curl_setopt ($this->chCURLOPT_COOKIEJAR'cookie.txt');
      
curl_setopt ($this->chCURLOPT_RETURNTRANSFER1);
    }
    public function 
getURL(urlargs) {
      
curl_setopt($this->chCURLOPT_URLurl);
      if (
args){
        
curl_setopt ($this->chCURLOPT_POSTFIELDSfuncionquenoexistetodavia(args);
        
curl_setopt ($this->chCURLOPT_POST1);
      }
      return 
curl_exec($this->ch);
    }
    function 
__destruct() {
       
curl_close ($this->ch); 
    }
}
?>


Pero para hacer un buen bot todavía queda mucho.

También intuyo que habrá mejores formas que curl, no parece estándar de php.

lnvisible

Gracias WHK! http://foro.elhacker.net/php/postear_en_foro_con_php-t338961.0.html;msg1663900#msg1663900

Código (php) [Seleccionar]
<?php
class PHPBot {

    private 
$ch;

    function 
__construct() {
      
$this->ch curl_init();
      
curl_setopt ($this->chCURLOPT_COOKIEJAR'cookie.txt');
      
curl_setopt ($this->chCURLOPT_RETURNTRANSFER1);
    }
    private function 
encodeArgs($args$separator "&"$start "?"){
      
$r "$start"
      
foreach($array as $key => $value)
        
$r += "$key=$value$separator";
      return 
$r;
    }
    public function 
getURL($url$args false) {
      
curl_setopt($this->chCURLOPT_URL$url);
      if (
$args){
        
curl_setopt ($this->chCURLOPT_POSTFIELDSencodeArgs($args);
        
curl_setopt ($this->chCURLOPT_POST1);
      }
      return 
curl_exec($this->ch);
    }
    function 
__destruct() {
       
curl_close ($this->ch); 
    }
}
?>


Lo he mejorado un poco, porque esto sólo está bien si poco a poco se va mejorando, si se hace de golpe es cansado y aburrido. No he mirado si funciona. Quien quiera colaborar puede hacer eso, o mejorarlo, el post de WHK tiene muchas cosas interesantes que ahora no entiendo.

Si veo que a nadie le importa sigo yo sola y me lo quedo para mí  :¬¬ no lo pongo más en el foro y chincha rabiña para todos, o no lo hago, igualmente ya tengo uno en python...

Aunque es interesante tenerlo en otros lenguajes porque es más fácil encontrar un hosting. Con javascript ya ni siquiera hace falta hosting :D

Shell Root

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

madpitbull_99

Citarjavascript? WTF!

Supongo que usa xmlhttprequest (Ajax) o algún framework como JQuery, para enviar los datos al formulario.

Con Node.js también se podría hacer desde javascript.




«Si quieres la paz prepárate para la guerra» Flavius Vegetius


[Taller]Instalación/Configuración y Teoría de Servicios en Red

lnvisible

Lo he estado pensando y no se que es mejor, si php o javascript. :-X

Una posible aplicación sería poner en una página (cada uno en la suya) un captcha, para saltarse el captcha de otra, además de controlar el acceso (que es para lo que sirve un captcha) (dependiendo de si se consigue pasar el otro captcha). He pensado que con php podría ser intertesante,  pero con javascriopt... ¿puede que fuera mejor? :¬¬ No estoy segura de qué es lo qeu seria más interesante o util. Las dos opciones me parecen buenas. ;)

Puede que esto no sea un reto, sino un proyecto, ¿no os interesaría participar?   :rolleyes: Yo creo que puede ser interesante, y puedo sacar ratos para hacer algo, sobre todo en vacaciones de navidades  ;) y estoy segura de que sería útil para muchos, no es tiempo perdido, y entre todos podemos hacerlo más y mejor. ;-)

Sin duda puede ser util para todos un bot así, ¿cómo se hace para propoer proyectos?  :huh: Yo creo que una propuesta como este reto sería lo más divertido para todos, más qu ehacer un diseño grande y todo eso, que casi parece que hay que hacerlo con traje y corbata  :P pero no se que piensa el resto de la gente  :-\

En javascript además se puede correr con node.js. ¿no es genial?  ;D

~ Yoya ~

No puedes comparar de esa forma PHP y javascript, tienen distinto objetivos.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

lnvisible

Cita de: ~ Yoya ~ en 29 Septiembre 2011, 17:58 PM
No puedes comparar de esa forma PHP y javascript, tienen distinto objetivos.

¿Ah no? Si el objetivo es hacer un bot, ¿por qué no puedo comparar así cuál de los dos lenguajes es mejor para ese objetivo en particular?

дٳŦ٭

mmm define "bot" porque para crear inteligencia artificial necesitas algo más q PHP. Dicho lenguaje está más enfocado para el funcionamiento web desde páginas muy simples hasta ERP o CRM muuuuy robustos, pero siempre dependerá de un servidor, OS, etc...

Por cierto, JS (javascript) no es AJAX...

Saludos


Con sangre andaluza :)


lnvisible

#8
Cita de: lnvisible en 28 Septiembre 2011, 16:37 PM
Lo he estado pensando y no se que es mejor, si php o javascript. :-X

Una posible aplicación sería poner en una página (cada uno en la suya) un captcha, para saltarse el captcha de otra, además de controlar el acceso (que es para lo que sirve un captcha) (dependiendo de si se consigue pasar el otro captcha). He pensado que con php podría ser intertesante,  pero con javascriopt... ¿puede que fuera mejor? :¬¬ No estoy segura de qué es lo qeu seria más interesante o util. Las dos opciones me parecen buenas. ;)

...

Sin duda puede ser util para todos un bot así, ¿cómo se hace para propoer proyectos?  :huh: Yo creo que una propuesta como este reto sería lo más divertido para todos, más qu ehacer un diseño grande y todo eso, que casi parece que hay que hacerlo con traje y corbata  :P pero no se que piensa el resto de la gente  :-\

En javascript además se puede correr con node.js. ¿no es genial?  ;D

Además se puede crear inteligencia artificial en php,  >:(

¿es que nadie entiende lo que digo o qué?  >:(

~ Yoya ~

#9
Igual, los navegadores no permiten peticione entre dominios con javascript.

PHP es lo ideal para esto.

Tendrás un mejor rendimiento, no dependes del navegador ni de sus configuraciones y muchas mas ventajas para este tipo de objetivos.


Tienes que estudiar los objetivos y conceptos de los dos lenguajes, porque andas perdido.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.