• Publicidad

Código fuente recogido con método Post

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Código fuente recogido con método Post

Notapor desdechina » 2013-07-05 02:52 @161

Hola:

A ver si sé explicar mi problema.

Necesito recoger información de una web y lo hago mediante un post. Hasta aquí no tengo problema.

La información que necesito no me aparece en el código recogido con el método post.

Si entro en "Herramientas para desarrolladores" del IE veo el código que me devuelve Perl en la pestaña "SCRIPT", pero yo necesito información que veo en la pestaña "HTML".

Código en HTML:
<input name="recipientPostalCode" tabindex="5" disabled="" class="inputlayout width140" id="recipientPostalID" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-position-x: 0%; background-position-y: 0%; background-size: auto; background-origin: padding-box; background-clip: border-box; background-color: rgb(192, 192, 192);" type="text" size="10" maxlength="35" autocomplete="off" value=""/>

Lo que busco, es la función marcada en rojo. ¿Cómo puedo obtenerla a través de Perl?

¡¡¡¡Mil gracias!!!!
desdechina
Perlero nuevo
Perlero nuevo
 
Mensajes: 38
Registrado: 2013-01-11 08:21 @389

Publicidad

Re: Código fuente recogido con método Post

Notapor explorer » 2013-07-05 09:53 @453

desdechina escribiste:La información que necesito no me aparece en el código recogido con el método post.
¿Qué quieres decir, que al hacer el POST no obtienes el código HTML de respuesta?

Dices que sí obtienes una respuesta... entonces... ¿a qué código HTML te refieres? ¿El de la respuesta al POST o el de antes del POST?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Código fuente recogido con método Post

Notapor desdechina » 2013-07-08 01:46 @115

Si es que no sé ni lo que quiero preguntar...

Empiezo.

Trabajando con IE, si me meto en la consola de desarrolladores veo que hay varias pestañas y a mi las que me interesan son HTML y SCRIPT.
Ambas contienen prácticamente el mismo código pero hay algunas cosas que en SCRIPT no sale, como por ejemplo la función "disabled" de un campo de texto (esto es lo que me interesa. El código lo puse en el primer mensaje).

Yo con el método POST ( $response = $ua->post($url,[]);), recibo la misma información que hay en la pestaña SCRIPT, pero claro, como te decía, necesito acceder a lo que hay en la pestaña HTML. No es que la información que me devuelve el método POST esté mal, si no que necesito la otra.

Dentro de Google Chrome, ocurre lo mismo: si doy al botón derecho del ratón y accedo al "código fuente de la pagina" veo el mismo código que yo recibo pero si me le doy a "inspeccionar elemento" aparece la información que realmente estoy buscando.

No sé si ahora mejor... es que no sé muy bien de lo que estoy hablando.

Mil gracias.
desdechina
Perlero nuevo
Perlero nuevo
 
Mensajes: 38
Registrado: 2013-01-11 08:21 @389

Re: Código fuente recogido con método Post

Notapor explorer » 2013-07-08 08:47 @408

No conozco nada de IE, pero supongo que te refieres a que la pestaña HTML contiene el código HTML que se ha descargado, mientras que la pestaña SCRIPT contiene el código JavaScript que el código HTML ha descargado.

No entiendo entonces que digas que con el método POST te has bajado la parte SCRIPT. ¿Seguro que el $url es el correcto?

Cabe también otra posibilidad: que el código JavaScript genere parte del código HTML, en el momento de la carga de la página. En ese caso, la solución es bastante más complicada: cuando te conectas con Perl para bajar el HTML, no se va a ejecutar ningún código JavaScript, ya que Perl no sabe que tiene que hacerlo, ni sabe cómo.

En ese caso, una solución es hacer un programa que use el navegador web como intermediario para que baje la $url, interprete el código ejecutable, y a continuación, solicitarle el código HTML que hay realmente en la ventana del navegador.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Código fuente recogido con método Post

Notapor desdechina » 2013-07-08 11:35 @524

¡¡¡Me he quedado paralizada!!! Vamos, que no te sigo nada de nada.

Mira, te adjunto un pantallazo del código de esta misma página en la que puedes ver lo que hay tanto en la pestaña HTML como en la pestaña SCRIPT.

Entonces, en la web que estoy usando, hay un campo que aparece deshabilitado en color gris y necesito acceder a esta característica pero solo veo "disabled" en la pestaña de HTML cuando lo que obtengo con el método POST es lo que hay en SCRIPT.
Adjuntos
SCRIPT.jpg
SCRIPT.jpg (193.36 KiB) Visto 1424 veces
HTML.jpg
HTML.jpg (143.17 KiB) Visto 1424 veces
desdechina
Perlero nuevo
Perlero nuevo
 
Mensajes: 38
Registrado: 2013-01-11 08:21 @389

Re: Código fuente recogido con método Post

Notapor explorer » 2013-07-08 17:06 @754

Vale. Lo que ves en la pestaña HTML es la traducción en forma de árbol jerárquico que el navegador ha interpretado, mientras que en SCRIPT parece que sale el código HTML en crudo.

Bueno, pues entonces: si con el POST obtienes todo el código, deberías poder acceder a la línea donde aparece el 'disabled'. Y si no puedes, es que se trata de código que se genera en el momento de la carga de la página.

Una forma de acceder a él es por medio de expresiones regulares. Lo que no sé es qué parte quieres obtener. ¿Lo que está entre las comillas en 'disabled'.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Código fuente recogido con método Post

Notapor desdechina » 2013-07-09 03:04 @169

Te adjunto pantallazos de la web con la que estoy trabajando.
Como ves en la pantalla HTML me sale disabled="" Esto es lo que tengo que recoger pero no sé cómo...
Debe ser lo que dices, que esa característica se activa al cargar la página pero, ¿cómo puedo recogerlo yo a posteriori?

Lo que sería perfecto sería poder recoger toda la información mostrada en la pestaña HTML en vez de la que sale en SCRIPT ya que aquí sale más información que en la otra.
Adjuntos
SCRIPT.jpg
SCRIPT.jpg (60.29 KiB) Visto 1442 veces
HTML.jpg
HTML.jpg (69.07 KiB) Visto 1442 veces
desdechina
Perlero nuevo
Perlero nuevo
 
Mensajes: 38
Registrado: 2013-01-11 08:21 @389

Re: Código fuente recogido con método Post

Notapor explorer » 2013-07-09 06:34 @315

Creo que has confundido el nombre de los adjuntos, pero bueno, creo que queda claro lo que quieres hacer.

Verás, hay un problema: lo que estás viendo en la pestaña HTML no es el código HTML de la página, sino la representación interna del navegador después de haber leído la página. Esa información reside solamente en la memoria del navegador, y solo mientras estás viendo esa página.

En esta página: Debugging HTML and CSS with the Developer Tools, dice
The Primary Content Pane is where the entire Document Object Model (DOM) is presented in a tree-node structure that can be expanded or collapsed. Use this pane to investigate and inspect your HTML sources. Attributes and values of HTML elements are editable by clicking on them. Text nodes are also editable in this mode. However, if you want to edit the entire webpage in an editor format you can click the Edit button. While in edit mode, the Word Wrap button is activated. You will also noticed that the content of this page may not be exactly the same as the original source because this is the internal representation of Windows Internet Explorer for this webpage. If you have JavaScript calls to write contents to the page, you will see them in this edit mode. Once you are done editing, click the Edit button again and the changes will take affect immediately.
Te he marcado en negrita la frase que lo confirma.

Entonces... el problema ahora no es el de recuperar información desde un servidor externo haciendo un POST... sino de recuperar información que está en la memoria del IExplorer.

La forma, manual, de hacerlo, es yendo al menú Ver->Código fuente->DOM (página). Eso abre una nueva ventana con el código generado. Lo copias a un archivo local y ya puedes procesarlo. Pero claro... esto es un proceso manual.

La forma programada sería hacer un procedimiento que llamara a Win32:: para que hablara con el navegador y realizara estos pasos... pero no tengo idea de si eso es posible. He estado mirando por las redes de Micro$oft, y no veo ningún código para hablar con Herramientas para Desarrolladores. Quizás accediendo al objeto DiagnosticsDom, pero no tengo idea de cómo hacerlo.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

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

cron