Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: .:Weeds:. en 24 Mayo 2011, 23:45 pm



Título: [SOLUCIONADO]Sacar datos de contenido web
Publicado por: .:Weeds:. en 24 Mayo 2011, 23:45 pm
Tengo el siguiente código que muestra una lista de personajes de un juego, es 1 pero podrian ser otra cantidad, siempre repitiendo esta estructura.
Código
  1. <div style="display:block;" class="bloc_list_persos_mid" id="characters_list_small">
  2. <ul>
  3. <li onmouseover="YAHOO.util.Dom.addClass(this,'over');" onmouseout="YAHOO.util.Dom.removeClass(this,'over');">
  4. <a class="" href="/es/personajes/servidor/Nombre-xxxxxxx">
  5. <span class="picto_persos anutrofm"></span>
  6. Nombre<br />
  7. <span><em>(Servidor)</em></span>
  8. </a>
  9. <a title="Preferencias y confidencialidad" class="mollette" href="/es/personajes/aguabrial/Nombre-xxxxxxx/gestion-perfil"></a>
  10. </li>
  11. </div>

Para sacar el Nombre y el servidor hago esto:
Código
  1. WebBrowser1.Document.GetElementById("characters_list_small").InnerText.ToString()
Al hacerlo me saca "Nombre(Servidor)", pero  lo que mas me interesa es conseguir la url "/es/personajes/servidor/Nombre-xxxxxxx"
Como podria hacerlo?
Agradezco cualquier respuesta  ;-)
Saludos!


Título: Re: Sacar datos de contenido web
Publicado por: Keyen Night en 24 Mayo 2011, 23:56 pm
Quizas expresiones regulares, no te doy ejemplos por que no se mucho pero hay bastantes en google. Recuerdo a ver tenido una vez un problema parecido pero para sacar links de imagenes eso lo resolvieron las expresiones regulares.


Título: Re: Sacar datos de contenido web
Publicado por: seba123neo en 25 Mayo 2011, 01:13 am
mejor usa un parser de HTML, hay una libreria para .NET llamada Html Agility Pack que es justo para eso, yo la use en un proyecto que publique hace poco aca en el foro.

saludos.


Título: Re: Sacar datos de contenido web
Publicado por: Edu en 25 Mayo 2011, 02:03 am
Al poner esto:

Código
  1. WebBrowser1.Document.GetElementById("characters_list_small").InnerText.ToString()
  2.  

Te saca de la web solo el texto, hay otra opcion para que te saque el codigo html:

web.Document.Body.InnerHtml;

Y despues busca la url esa, recorres la cadena y guardas el nombre q querias


Título: Re: Sacar datos de contenido web
Publicado por: .:Weeds:. en 26 Mayo 2011, 01:06 am
Gracias, al final me he decantado por las expresiones regulares.
El Html Agility Pack parece bastante interesante, la usaré en un futuro para un proyecto mas laborioso.

Saludos y gracias.