• Publicidad

Usar WWW::Mechanize con Ajax

Aquí encontrarás todo lo que sea específicamente acerca de módulos de Perl. Ya sea que estás compartiendo tu módulo, un manual o simplemente tienes una duda acerca de alguno.

Usar WWW::Mechanize con Ajax

Notapor danimera » 2011-02-15 16:16 @720

La tarea que tengo que hacer es un pequeño bot que registra unos datos en un formulario, pero éste tiene un select con categorías que, cuando le doy clic me despliega el formulario según la categoría...

No he podido pasar de ahí. Otro problema que tengo es cuando el botón es una imagen y retorna es una función de JavaScript. He buscando un módulo y encontré WWW::Mechanize::Plugin::Ajax pero no logro usarlo.

Cuando uso
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$mech->use_plugin('Ajax');
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

obtengo el error
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Error executing class callback in prerun stage: Can't locate object method "use_plugin" via package "WWW::Mechanize"
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Publicidad

Re: Usar WWW::Mechanize con Ajax

Notapor explorer » 2011-02-15 17:56 @789

¿Has cumplido con todos los requisitos que indica el módulo?

* WWW::Mechanize::Plugin::JavaScript version 0.004 or later
* WWW::Mechanize::Plugin::DOM version 0.005 or later
* constant::lexical
* XML::DOM::Lite
* HTML::DOM version 0.013 or later
* Encode 2.09 or higher


y además, no vale un WWW::Mechanize cualquiera, sino uno experimental que hay que bajar desde la página del autor.

Yo creo que todavía no es posible acceder con WWW::Mechanize a código generado con JavaScript. Esos contenidos siempre he tenido que investigar las URL que se creaban, para luego bajarlos directamente.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Usar WWW::Mechanize con Ajax

Notapor danimera » 2011-02-15 18:32 @814

Entonces, explorer, me recomiendas mejor obtener lo que generan esos script para obtener así cómo y a dónde debo enviar la información que necesito del formulario...
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Re: Usar WWW::Mechanize con Ajax

Notapor explorer » 2011-02-16 03:04 @169

La primera pregunta de WWW::Mechanize::FAQ dice:

«Tengo esta web que contiene JavaScript dentro de ella, y mi programa Mech no funciona.

Esto es porque WWW::Mechanize no opera en el JavaScript. Solo entiende las partes HTML de la página.»

Podrías intentar usar a Firefox como intermediario: WWW::Mechanize::Firefox. Ahí sí que funcionará todo el JavaScript.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Usar WWW::Mechanize con Ajax

Notapor danimera » 2011-02-16 20:23 @891

Bueno, interesante alternativa... :? Ya logré solucionar los problemas del Ajax, casi todos.

Ahora solo tengo un formulario que me muestra un campo un select desplegable que es generado por Ajax y ese sí que no puedo pasarle un valor. Pero me ocurrió que podría adicionarle este campo el cual ya sé cuál es el nombre y los valores que puede tener para que cuando haga el $mech->submit() me envíe este campo en el formulario...

No sé si me hice entender pero creo que Mechanize crea un objeto HTML::Form. La idea es crear yo manualmente ese campo ahí y ya. No sé cómo hacerlo... :?
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Re: Usar WWW::Mechanize con Ajax

Notapor explorer » 2011-02-17 04:39 @235

Recuerda que el envío de datos desde el cliente al servidor, con un formulario, siempre es siguiendo el método GET o el POST.

Entonces, no necesitas crear ningún formulario, ni select, ni nada. Solo tienes que imitar el envío de información con un GET o POST, algo que es fácil de hacer con los métodos get() y post() del WWW::Mechanize.

El método post() se hereda de LWP::UserAgent, por lo que allí está descrito cómo pasar los valores de los input.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Usar WWW::Mechanize con Ajax

Notapor danimera » 2011-02-17 10:04 @461

Gracias, explorer, como siempre salvas a la Patria...
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia


Volver a Módulos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 23 invitados

cron