PDA

Ver la Versión Completa : Cargar un sitio web en una variable HTMLDocument


mamen
10-02-2005, 11:47:33
Hola a todos!!!!

Tengo un gran problema, necesito que alguien me ayude urgentemente.

Tengo una aplicación en ASP.NET con Visual Basic .NET, tengo el siguiente código para cargar un determinado sitio web en la variable oH2, hasta aquí todo bien.

Cuando hago una traza para ver si me está cargando bien todas las páginas del sitio me funciona bien, me va almacenando las páginas correctamente pero cuando no hago ninguna traza me carga las páginas que quiere y del resto pasa.

Se os ocurre algo???? A lo mejor como son tantas páginas no le da tiempo a cargar o algo asi??? No tengo ni idea de lo que hacer, por favor a ver si alguien me da alguna idea. Gracias

A continuación muestro el código de cómo cargo las páginas

oH2 = oh

oH2.open("c:\pagmia.html")

oH2.close()

oH2 = oh.createDocumentFromUrl(ruta, "null")


He visto por internet que tb utilizan este bucle pero yo no soy capaz de ponerlo ya que me da error en Application, que no lo reconoce


'Do Until oH2.readyState = "complete"
'Application.doEvents()

'Loop





Muchas gracias por todo. Espero respuestas. Chao

__hector
10-02-2005, 14:35:23
Cual es la clase del objeto oh ?

mamen
10-02-2005, 17:36:18
Public oh As mshtml.HTMLDocument
Public oH2 As mshtml.IHTMLDocument2


También he probado a definir oH2 como:

'Public WithEvents oH2 As mshtml.HTMLDocument

__hector
11-02-2005, 16:52:28
Y que quieres lograr cargando desde una pagina aspx otra pagina de otro serveR? A ver si encontramos una solucion alternativa, pero asi de entrada, te digo que resulta "mejor" utilizar clases propias del framework (WebRequest, WebResponse) que utilizar COMs y sus wrappers.

mamen
14-02-2005, 09:08:19
Estoy haciendo una herramienta para evaluar cómo de bueno es un determinado sitio web, para ello en primer lugar tengo que almacenar el sitio web en alguna variable (en mi caso oH2) y sacar de esta toda la información que necesito (tal como imágenes del sitio, enlaces, etc.) para a continuación calcular una serie de métricas.

Todo esto ya lo tengo hecho, el problema me viene cuando voy recorriendo las páginas del sitio, como tb las tengo que cargar tengo que volver a asignar a otra variable oH2 la página correspondiente, y asi con el resto de páginas y subpáginas.

Aparentemente si hago una traza todo va de maravilla pero cuando quito las trazas (como un sitio tiene tantas páginas es imposible cargarlo entero con trazas) y lo ejecuto me almacena lo que le da la gana. Puede ser que al ser el sitio tan grande debo poner algo para que de tiempo a cargarse el sitio????

Espero tu respuesta. Gracias. Chao.

__hector
17-02-2005, 01:30:09
En realidad no entiendo por que utilizar asp.net, pero ya que iniciaste en ese environment....

Prueba con los objetos que te mencioné anteriormente... webrequest y webresponse, para obtener el contenido de una web.

Yo he hecho algo mas o menos parecido a lo que pretendes, una especie de indexador de paginas web con llamadas recursivas (vamos, un pseudobot de internet, aunque no pretendo ser competencia de google), y cuando migre al maravilloso .NET, esas clases me encajaron como anillo al dedo.

Intenta y cuentanos que tal te va....