• Publicidad

Problemas Samie

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Problemas Samie

Notapor xecco » 2006-04-21 05:17 @262

Estoy empezando con este modulo, y tengo un pequeño problema con el siguiente script:
Código: Seleccionar todo
#!c:/perl/bin
#Iniciamos nuestros módulos

use Win32::OLE;
use Win32::SAM;

#Obligamos a hacer flush
$| = 1;

#Indicamos como manejar errores
$Win32::OLE::Warn = 3;

#Iniciamos nuestro navegador
StartIE();

#Cargamos la página
my $segundos = Navigate("http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=omim");
print "Tardo $segundos segundos en cargar.\n";

#Llenamos el campo de búsqueda
SetEditBox("term","adprtl1");

#Hacemos submit de la forma
ClickFormButton("Go");

#Enviamos la busqueda al ClipBoard
SetListBoxItem("SendTo","Add to Clipboard");

#Salimos del programa
exit(1);

El problema es que a partir del comando "ClickFormButton("Go");", el programa se detiene. Aún no he podido entender el porqué.

Muchas gracias
xecco
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2006-04-21 05:14 @260

Publicidad

Notapor explorer » 2006-04-21 05:45 @281

Cuando un usuario pulsa el botón Go, lo que ocurre en el navegador es que ejecuta la función de JavaScript siguiente:
Código: Seleccionar todo
function Go(cmd)
{
    inGo=true;
    var frm = document.frmQueryBox;
    var sel = frm.db;
    frm.CMD.value = escape(cmd);
    if ( cmd =='Pager' ) { frm.cmd.value = ''; }  else { frm.cmd.value = cmd; }
    AddLimits();
    var q = frm.action;
    frm.action = q.substring(0, q.indexOf('?')) + '?CMD=' +frm.CMD.value + '&DB='+sel.options[sel.selectedIndex].value;
    frm.submit();
    inGo=false;
}
Se vé que necesita acceder a los valores de los campos db y action para hacer la composición del URL que va a pedir a continuación al hacer el submit. El campo db es el select que está a la izquierda.
Básicamente, se crea el mismo URL que has utilizado para hacer la búsqueda de la base de datos OMIM. Pero al hacer el submit, se está enviando por medio del POST el resto de las variables que el usuario ha rellenado.
Eso quiere decir que si sólo quieres saber los detalles de adprt11, lo más sencillo es pedir este URL:
http://www.ncbi.nlm.nih.gov/entrez/quer ... rm=adprtl1
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

Notapor xecco » 2006-04-21 08:23 @390

!!Muchas gracias!! Pero no sólo me interesaban los detalles de la palabra de búsqueda. Luego quería que el scrip continuara eligiendo la lista de items "SendTo" la opción "Add to clipboard". Esto me ha sido facil, pero tengo un prolbema. Cuando lo hago de manera 'manual', al seleccionar "Add to Clipboard", directamente y sin clickar sobre ningún 'botón' me redirecciona a la selección. Pero con el scrip no lo hace, simplemente selecciona la opción y se queda allí.
Incluyo el nuevo código.

gracias!!
Código: Seleccionar todo
#!c:/perl/bin
use Win32::OLE;
use Win32::SAM;

$| = 1;

$Win32::OLE::Warn = 3;

StartIE();

my $segundos = Navigate("http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?CMD=search&DB=omim&term=adprtl1");
print "Tardo $segundos segundos en cargar.\n";

SetCheckBox("uid",1);

SetListBoxItem("SendTo","Add to Clipboard");

exit(1);
xecco
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2006-04-21 05:14 @260

Notapor explorer » 2006-04-21 10:46 @490

Lo mismo que antes. Esta página está llena de Javascripts.

Si Sami interactúa con el Internet Explorer y este no se da cuenta de que tiene que activar el evento OnChange del select 'SendTo', entonces Sami no te vale o tienes desactivado el uso de Javascript en el Internet Explorer.

Por fortuna, parece que esas funciones escritas en JavaScript son sencillas, y podrías sustituir la navegación con Sami por peticiones a URLs. Pero no estoy seguro porque no lo he mirado con calma.

Repasa el código fuente de la página web que estás usando para que puedas ver todo el JavaScript que necesitas tener en cuenta para imitar la navegación de un usuario.
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


Volver a Intermedio

¿Quién está conectado?

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