elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: [Aporte] Mejores practicas en Java


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | |-+  Separar partes de un un html code
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Separar partes de un un html code  (Leído 1,967 veces)
extreme69

Desconectado Desconectado

Mensajes: 178


Be BlackHat but don't forget your principles.


Ver Perfil
Separar partes de un un html code
« en: 22 Febrero 2011, 04:56 »

A ver, tengo un archivo .html inmenso y necesito sacar cierta información dentro de unos tags.

Tengo que sacar del .html todo lo que esté entre medio de
Citar
<a href="

hasta
Citar
"><img class=

Esta sería parte del código:
Citar
<a href="xfire:add_friend?user=mrdogbertt"><img class=

Y esto lo que necesito obtener:

Citar
xfire:add_friend?user=mrdogbertt

Estoy usando este código:

Citar
      Private Function ExtractInfo(ByVal strstring As String, ByVal starttag As String, ByVal endtag As String) As String
      ExtractInfo = Mid(strstring, Len(starttag) + 1, Len(strstring) - Len(endtag) - Len(starttag))
      End Function


      Private Sub Command1_Click()
      MsgBox ExtractInfo(Text1.Text, "<a href", "><img class")
      End Sub

Pero no me funciona en lo más mínimo, me corta partes del código que nada que ver, y aparte hay muchos de estos en el mismo html, y me obtendría sólo 1 o todos juntos, y yo necesito obtenerlos 1 por 1

Ideas? sugerencias? ejemplos? soluciones? ayuda? algo?



En línea

Elemental Code


Desconectado Desconectado

Mensajes: 622


Im beyond the system


Ver Perfil
Re: Separar partes de un un html code
« Respuesta #1 en: 22 Febrero 2011, 05:11 »

Quiero que busques en este foro con muuucho cuidado, Mr.Frog tiene unos codigos para manipular codigo html.
Con uno lo obtenes y con otro lo limpia o algo asi.

Buscalo  ;D

son las 01:11 de la matina, me voy a hacer noni :P


En línea

I CODE FOR $$$
Programo por $$$
Hago tareas, trabajos para la facultad, lo que sea en VB6.0

Mis programas
ignorantev1.1


Desconectado Desconectado

Mensajes: 617


/\ Así acabo cuando quiero programar...


Ver Perfil WWW
Re: Separar partes de un un html code
« Respuesta #2 en: 22 Febrero 2011, 05:32 »

Código
  1. Function getXfire(ByVal tStr As String) As String
  2.    Dim i As String
  3.    Dim f As String
  4.    tStr = LCase(tStr)
  5.    i = InStr(tStr, "<a href=")
  6.    f = InStr(tStr, "<img class")
  7.    If i = 0 Or f = 0 Then getXfire = "No hay!": Exit Function
  8.    getXfire = Mid(tStr, i + 9, f - i - 11)
  9. End Function
  10.  

checalo
En línea

yalosabes

Desconectado Desconectado

Mensajes: 87


Ver Perfil
Re: Separar partes de un un html code
« Respuesta #3 en: 22 Febrero 2011, 05:59 »

ahmm ..spero q t sirva ste codigo
Código
  1. Private Sub ListarUrl()
  2.  
  3. Dim i As Integer
  4.  
  5.       List1.Clear
  6.        For i = 0 To wb1.Document.links.length - 1
  7.          List1.AddItem wb1.Document.links.Item(i)
  8.          List2.AddItem wb1.Document.All.tags("a").Item(i).innerText
  9.       Next
  10. End Sub
  11.  
donde dice "a" puedes poner "td"  "img" "div" .. o lo que kieras...

en el ejemplo estoy sakando el texto con su respectiva url.. en los list distintos
« Última modificación: 22 Febrero 2011, 13:41 por raul338 » En línea

extreme69

Desconectado Desconectado

Mensajes: 178


Be BlackHat but don't forget your principles.


Ver Perfil
Re: Separar partes de un un html code
« Respuesta #4 en: 22 Febrero 2011, 07:23 »

Bueno, funcionar funciona... con el código de ignorantev1.1... pero me toma únicamente la primera y me corta el resto del código donde se encuentran los otros links que quiero obtener.

Tengo el código html en un textbox, y estoy llamando a la función de esta manera:

call getXfire(Text1.Text)

Hay alguna manera de que no me corte el texto en Text1 sino que lo mande a otro textbox?


Agrego: Lo hice de una manera menos "elite", a puro sendkeys, tabs y enters, jajajaj, pero para mi sorpresa funciona y funciona excelente.

Gracias a todos por la ayuda!!! si alguien tiene el mismo objetivo que yo me dicen y les paso el source.

Saludos.-
« Última modificación: 22 Febrero 2011, 07:50 por extreme69 » En línea

Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: Separar partes de un un html code
« Respuesta #5 en: 22 Febrero 2011, 09:07 »

Dios mio... SendKeys() para este tipo de cosas no por favor. :-(
Te dejo aquí una funcion para sacar el texto entre dos palabras, para esto creo que te funcionará, sino otra opción será usar RegExp.

Código:
Código
  1. 'by Mr.Frog™
  2. Public Function TextBetweenWords(ByRef strText$, ByRef strWord1$, ByRef strWord2$) As String
  3. Dim lngPos1&, lngPos2&, lngStart&
  4.  
  5.    lngPos1 = InStr(strText, strWord1)
  6.    If lngPos1 Then
  7.        lngStart = lngPos1 + LenB(strWord1) \ 2
  8.        lngPos2 = InStr(lngStart, strText, strWord2)
  9.        If iPosition2 Then
  10.            TextBetweenWords = Mid$(strText, lngStart, lngPos2 - lngStart)
  11.        End If
  12.    End If
  13. End Function

Ejemplo:
Código
  1. Private Sub Form_Load()
  2.    Msgbox TextBetweenWords("<a href=""xfire:add_friend?user=mrdogbertt""><img class=", "<a href=""", """><img class=")
  3. End Sub

Resultado:
Código:
xfire:add_friend?user=mrdogbertt

No tengo el vb ahora, pero debería funcionar. :rolleyes:

DoEvents! :P
En línea

extreme69

Desconectado Desconectado

Mensajes: 178


Be BlackHat but don't forget your principles.


Ver Perfil
Re: Separar partes de un un html code
« Respuesta #6 en: 22 Febrero 2011, 09:34 »

jajajajaja  ;D

Si, ya sé soy un cochino... quedó un poco bugueado con sendkeys, tabs y enters, pero bueno, el 90% de los links los carga sin problemas. Incluso agregué botones para loguear y desloguear  :silbar:

El problema es que tengo el código html cargado en un textbox, pero el resultado debería ir a otro textbox y como si fuese poco hay muchos links, no sólo 1, debería tomar 1x1, ir poniendolos en el otro textbox (el de la url) e ir visitando cada link extraído, y la verdad no se me ocurrió el como.

Para que tengas una idea de lo que hice...

http://www.xfire.com/communities/dignitas/roster/

Si estás logueado al entrar a ese link vas a ver que cada usuario debajo tiene un "+" para agregarlo como amigo.
En línea

Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: Separar partes de un un html code
« Respuesta #7 en: 22 Febrero 2011, 13:27 »

Te dejo un ejemplo con RegExp que te saca todas las coincidencias. :)
No quedaría mejor cargar la info en un ListBox en vez de un TextBox?? :silbar:

Código
  1. 'by Mr.Frog™
  2. Public Function GetXFireText(ByRef strText$) As String()
  3. Dim objMatches As Object, objRegExp As Object
  4. Dim strTmp$(), lngTotal&, Q&
  5.  
  6.    Set objRegExp = CreateObject("VBScript.RegExp")
  7.  
  8.    With objRegExp
  9.        .Pattern = "\<a href\=""(\S+)""\>\<img class\="
  10.        .Global = True
  11.        .IgnoreCase = True
  12.    End With
  13.  
  14.    Set objMatches = objRegExp.Execute(strText)
  15.  
  16.    lngTotal = objMatches.Count - 1
  17.  
  18.    If lngTotal > -1 Then
  19.        ReDim strTmp$(lngTotal)
  20.  
  21.        For Q = 0 To lngTotal
  22.            strTmp(Q) = objMatches(Q).SubMatches(0)
  23.        Next Q
  24.  
  25.        GetXFireText = strTmp
  26.    End If
  27.  
  28.    Set objRegExp = Nothing
  29. End Function

Ejemplo:
Código
  1. Private Sub Form_Load()
  2.    Text1.Text = "<a href=""xfire:add_friend?user=mrdogbertt""><img class=" '// Text1 -> contenido html
  3.    Text2.Text = Join$(GetXFireText(Text1.Text), vbCrLf)                    '// Text2 -> textbox destino
  4. End Sub

DoEvents! :P
« Última modificación: 22 Febrero 2011, 13:40 por Mr.Frog™ » En línea

ignorantev1.1


Desconectado Desconectado

Mensajes: 617


/\ Así acabo cuando quiero programar...


Ver Perfil WWW
Re: Separar partes de un un html code
« Respuesta #8 en: 22 Febrero 2011, 16:51 »

Código
  1. Function getXfire(ByVal tStr As String, ByVal fPar As String, ByVal lPar As String) As String
  2.    Dim i As Long
  3.    Dim f As Long
  4.    Dim isValid As Boolean
  5.    tStr = Replace(LCase(tStr), vbCrLf, "")
  6.    tStr = Replace(tStr, vbTab, "")
  7.    i = InStr(tStr, fPar)
  8.    f = InStr(i + Len(fPar) + 1, tStr, Chr$(34))
  9.    While i > 0 And f > 0
  10.        If Mid(tStr, f + 2, Len(lPar)) = lPar Then
  11.            getXfire = getXfire & Mid(tStr, i + Len(fPar) + 1, f - i - Len(fPar) - 1)
  12.            isValid = True
  13.        End If
  14.        i = InStr(f + 1, tStr, fPar)
  15.        f = InStr(i + Len(fPar) + 1, tStr, Chr$(34))
  16.        If i > 0 And f > 0 And isValid Then getXfire = getXfire & vbCrLf
  17.        isValid = False
  18.    Wend
  19. End Function
  20.  
  21. Private Sub Command1_Click()
  22.    Text2 = getXfire(Text1, "<a href=", "<img") '--> Lo que este en "<a href=" lo guardara sin comillas, siempre y cuando este junto a una etiqueta "<img"
  23. End Sub
  24.  

A ver que tal este  :D
« Última modificación: 22 Febrero 2011, 16:55 por ignorantev1.1 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
code en html o php
Desarrollo Web
GracuM 3 742 Último mensaje 28 Noviembre 2004, 22:11
por -Riven-Ward-
Google.com vulnerable to XSS (HTML Code Injection)
Bugs y Exploits
TinKode 9 3,762 Último mensaje 3 Diciembre 2010, 23:33
por TinKode
[Ayuda] separar cadena en partes
Programación C/C++
sabeeee 4 1,149 Último mensaje 10 Enero 2015, 02:12
por sabeeee
¿Cómo separar unos botones html & css? « 1 2 »
Desarrollo Web
WIитX 11 2,696 Último mensaje 1 Noviembre 2015, 18:12
por WIитX
Convertir manualmente partes de un archivo html a csv
Desarrollo Web
Esgrimidor 2 158 Último mensaje 13 Septiembre 2017, 16:57
por Esgrimidor
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines