Ir al contenido


Foto

cppwebbrowser dom


  • Por favor identifícate para responder
5 respuestas en este tema

#1 monomicho

monomicho

    Newbie

  • Miembros
  • Pip
  • 3 mensajes

Escrito 12 octubre 2012 - 09:41

Hola amigos del foro he estado busando com recorrer los elementos de un sitio web que cargo en mi app a traves del cppwebbrowser, pero aun no encuntro nada en c++, he encontrado una pagina interesante en delphi, pero de este lenguaje no se nada. Quizas me puedan ayudar con algun codigo o traduciendo el codigo que esta en el siguiente sitio:
http://www.cryer.co.uk/brian/index.htm

Muchas gracias amigos
  • 0

#2 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 12 octubre 2012 - 09:52

Hola amigos del foro he estado busando com recorrer los elementos de un sitio web que cargo en mi app a traves del cppwebbrowser, pero aun no encuntro nada en c++, he encontrado una pagina interesante en delphi, pero de este lenguaje no se nada. Quizas me puedan ayudar con algun codigo o traduciendo el codigo que esta en el siguiente sitio:
http://www.cryer.co.uk/brian/index.htm

Muchas gracias amigos


Aparecen diferentes enlaces de código amigo... cuál de todos quieres traducir a c++
  • 0

#3 monomicho

monomicho

    Newbie

  • Miembros
  • Pip
  • 3 mensajes

Escrito 12 octubre 2012 - 10:10

Hola amigo, agradezco tu respuesta
Seria muy bueno tener en este foro todo lo de la pagina pero seria mucho pedir,
si puedes solo traducir esto:
http://www.cryer.co....er/get_HTML.htm seria muy bueno,
gracias de antemano
  • 0

#4 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 13 octubre 2012 - 02:05

Bienvenido monomicho.

Parece que quieres extraer el contenido de una determinada URL puedes usar la siguiente función muy similar a la presentada en el enlace que proporcionas sólo que lo lee directamente de la URL no desde el TCppWebBrowser:


cpp
  1. String InternetReadWeb(char* URL)
  2. {
  3.   HINTERNET hNet;
  4.   HINTERNET hUrl;
  5.   char  Buffer[513];
  6.   DWORD BytesRead = 0;
  7.   String Text = "";
  8.   bool NoError;
  9.  
  10.   if(InternetAttemptConnect(0) != ERROR_SUCCESS) return Text;
  11.  
  12.   hNet = InternetOpen("agent", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
  13.   if(hNet){
  14.     hUrl = InternetOpenUrl(hNet, URL, NULL, 0, INTERNET_FLAG_RELOAD, 0);
  15.     if(hUrl){
  16.       // Lee la pagina web...
  17.       while(true){
  18.         NoError = InternetReadFile(hUrl, Buffer, sizeof(Buffer)-1, &BytesRead);
  19.         if(NoError && BytesRead==0) break;
  20.         Buffer[BytesRead] = 0;
  21.         Text = Text + Buffer;
  22.       }
  23.       InternetCloseHandle(hUrl);
  24.     }
  25.     InternetCloseHandle(hNet);
  26.   }
  27.  
  28.   return Text;
  29. }



PD:  Vario el código para optimizar en velocidad. Si aumentas mas el tamaño del Buffer irá más rápido en Webs con código HTLM mas extenso.

Saludos.
  • 0

#5 monomicho

monomicho

    Newbie

  • Miembros
  • Pip
  • 3 mensajes

Escrito 15 octubre 2012 - 12:16

Gracias por la respuesta escafandra.
Me ha servido el código que me dejas y de mucho.
Yo quisiera hacer mas, no se si mis pretensiones no se pueden lograr ya que en otros foros no me responden, quizás estoy pidiendo demasiado. Esto tratando de entender el IHTMLElement o IHTMLElementCollection ya que he visto que utilizan mucho "eso" para trabajar con la web desde c++; resulta que no encuentro código de c++ sobre su manejo y encontré ese sitio del cual deje un link en mi primer post, que creo que trabajan bien el tema, pero no se nada de delphi.
Te planteo mi objetivo y espero que me respondan si es posible y como hacerlo o que me dejen saber donde esta la documentación del para aprender y hacerlo yo.
Necesito poder trabajar con un a web desde c++ com si fuera javascript:
-poder contar los elementos determinados de una web (links, <p>, <table>, etc)
-poder controlarlos (escribir en ellos, obtenr el texto)
-presionar los botones
-identificar los elementos por tag, id, name, class
Eso es lo que he venido preguntando en los foros escafandra y no me han respondio ni me han dicho , mira eso lo aprendes aqui o alla. Como no me han dicho nada no se si existe esa posibilidad desde c++ o si la hay y se la reservan...?
Espero una ayudita si es posible, y muchas gracias.

  • 0

#6 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 17 octubre 2012 - 06:51

Mírate estos enlaces:

Internet Explorer C++ Reference
IHTMLElement
IHTMLElementCollection


Saludos.

  • 0




IP.Board spam blocked by CleanTalk.