Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Módulos » Usar WWW::Mechanize con Ajax Responder al tema
Nuevo tema


Página 1 de 1  [ 7 mensajes ] 
 
Nota 2011-02-15 16:16 @720
Avatar de Usuario
Vive para Perl en Español
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia
Mensajes: 551
Usar WWW::Mechanize con Ajax
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
Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
$mech->use_plugin('Ajax');

obtengo el error
Syntax: [ Download ] [ Hide ]
Using text Syntax Highlighting
Error executing class callback in prerun stage: Can't locate object method "use_plugin" via package "WWW::Mechanize"

_________________
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org


Nota 2011-02-15 17:56 @789
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10272
Re: Usar WWW::Mechanize con Ajax
¿Has cumplido con todos los requisitos que indica el módulo?

Citar:
* 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


Nota 2011-02-15 18:32 @814
Avatar de Usuario
Vive para Perl en Español
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia
Mensajes: 551
Re: Usar WWW::Mechanize con Ajax
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


Nota 2011-02-16 03:04 @169
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10272
Re: Usar WWW::Mechanize con Ajax
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


Nota 2011-02-16 20:23 @891
Avatar de Usuario
Vive para Perl en Español
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia
Mensajes: 551
Re: Usar WWW::Mechanize con Ajax
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


Nota 2011-02-17 04:39 @235
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10272
Re: Usar WWW::Mechanize con Ajax
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


Nota 2011-02-17 10:04 @461
Avatar de Usuario
Vive para Perl en Español
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia
Mensajes: 551
Re: Usar WWW::Mechanize con Ajax
Gracias, explorer, como siempre salvas a la Patria...

_________________
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org


Responder al tema  [ 7 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO