| Ver tema anterior :: Ver siguiente tema |
| Autor |
Mensaje |
r3dd3vil2 Moderador


Registrado: 19 Nov 2004
Mensajes: 1594
Ubicación: en ninguna parte.
|
Publicado: Jue Dic 29, 2005 8:59 pm Título del mensaje: Duda VB, listar ciertos datos de un texto... |
|
|
Hola!,
no sabía como explicarlo, por lo que supongo que no entienden de que va esto, porque el titulo... se las trae, jeje... Voy al grano...
| Código: |
Private Sub Command1_Click()
Dim lngStart As Long
Dim lngStop As Long
Dim codigo_html As String
Me.Enabled = False
Screen.MousePointer = vbHourglass
DoEvents
codigo_html = Inet1.OpenURL(WebBrowser1.LocationURL)
lngStart = InStr(UCase$(codigo_html), "<A HREF=")
If lngStart > 0 Then
lngStart = lngStart + 8
lngStop = InStr(UCase$(codigo_html), "</A>")
If lngStop > lngStart Then Text1.Text = Mid$(codigo_html, lngStart, lngStop - lngStart) Else Text1.Text = ""
End If
Screen.MousePointer = vbNormal
Me.Enabled = True
End Sub
|
Este código funciona perfectamente, osea, lo que hace es que del "WebBrowser1", la url que está siendo visitada, le saca el HTML, y lee los lincs, el único problema es el siguiente.
SOLO LISTA UN ELEMENTO!
Sí, lo sé, hace lo que dice el código que haga, pero esque no maclaro yo con los bucle en VB, me tienen manía o algo XD.
Mi petición:
[b] Arreglar este code que puse para que al darle a Command1, liste no solo el contenido de <a href=XXXXXXXX>xxxxxxxxx</a> sino, de este vinculo y TODOS LOS DEMÁS...
Espero que me entiendan, XD perdón por no saber explciar mejor...
Gracias! y Felices Fiestas! _________________
Escuchar Musica Online
Aarón - Programador Web |
|
| Volver arriba |
|
 |
w0rm Yo soy el foro


Registrado: 04 Jun 2005
Mensajes: 2374
Ubicación: España - Málaga
|
Publicado: Vie Dic 30, 2005 8:04 am Título del mensaje: |
|
|
Yo estoy con ello, cuando te lo arregle te lo paso el codigo...
Por cierto, ¿te has dado cuenta que te pilla el texto referente al link?
Es decir; cuando te toma el contenido de un enlace, te lo muestra así:
| Código: |
| "www.akilawebdeunlinkrobado.com">Link robado |
Esto es así ya que tu capturas lo que hay entre <a href= y </a>.
Por eso como el codigo HTML es <a href="www.akilawebdeunlinkrobado.com">Link robado</a>,
te toma esa parte, lo unico que tu eliminas de dicho codigo son las etiquetas...
Estoy probando un bucle con FOR y desde luego no para de salirme errores,
he conseguido hacer que muestre varias veces el mismo link.
No se porqué sucede, estoy en ello, la verdad es que a estas horas cualquiera se pone a pensar...
PD: ¿Que programa pretendes hacer? ¿Un Link Leecher? xDDD
Salu2. _________________
netw0rm.com[a:R`r,0+b¨a]G|v|4¡L[p^u.n-t'O]C0|v|
NO ATIENDO A PEDIDOS POR MP... |
|
| Volver arriba |
|
 |
r3dd3vil2 Moderador


Registrado: 19 Nov 2004
Mensajes: 1594
Ubicación: en ninguna parte.
|
Publicado: Vie Dic 30, 2005 11:04 am Título del mensaje: |
|
|
No, es sólo cuestión de apprender, y de esa forma ver como listar los datos entre dos etiquetas de una web, ya se que pilla todo eso, pero esque en verdad lo que pretendo pillar son links con el siguiente formato:
<a href="xxxxxxxxxx" target="_blank">
Y pillar desde <a href= hasta target=
Pero no te compliques yo hago lo demás solo deseo que consigas "listar" mas de uno  _________________
Escuchar Musica Online
Aarón - Programador Web |
|
| Volver arriba |
|
 |
w0rm Yo soy el foro


Registrado: 04 Jun 2005
Mensajes: 2374
Ubicación: España - Málaga
|
Publicado: Vie Dic 30, 2005 2:50 pm Título del mensaje: |
|
|
Ya...pero si una web no usa los target es lógico que no te los coja...xDDD
Bueno, respecto a eso tendrias que coger, identificar el formato del link,
y una vez que tengas ese formato, coger desde donde empieza hasta donde termina,
tal como tu lo haces pero sin quitar los tag de inicio y cierre del link.
Eso como bien dices lo haces tu, ya que yo no tengo la idea de como hacerlo,
respecto a listar varios de los links de una web, estoy probando con FOR,
pero ya te digo que no consigo listar más de un link diferente,
sino que se lista el mismo, muchas veces.
Salu2. _________________
netw0rm.com[a:R`r,0+b¨a]G|v|4¡L[p^u.n-t'O]C0|v|
NO ATIENDO A PEDIDOS POR MP... |
|
| Volver arriba |
|
 |
r3dd3vil2 Moderador


Registrado: 19 Nov 2004
Mensajes: 1594
Ubicación: en ninguna parte.
|
Publicado: Vie Dic 30, 2005 5:03 pm Título del mensaje: |
|
|
Una sugerencia, por qué no haces que despues del if, el "puntero" se ponga despues de la primera aparicion, osea.
- Abres for
-Buscas el vinculo y lo listas
-Pones el puntero de inicio (LngStart, creo) al final de lo que encontrastes
-Loop
-Cierras for _________________
Escuchar Musica Online
Aarón - Programador Web |
|
| Volver arriba |
|
 |
w0rm Yo soy el foro


Registrado: 04 Jun 2005
Mensajes: 2374
Ubicación: España - Málaga
|
Publicado: Sab Dic 31, 2005 3:52 am Título del mensaje: |
|
|
Ya lo tengo terminado y mejorado,
he puesto que se pueda introducir la web mediante un textbox,
he suprimido el control web y he dejado solo el Inet y un Listbox.
Dos botones, uno para capturar los links y otro para borrar el contenido del listbox.
Te dejo el código y tu te montas el aspecto, es decir, botones y demas...
| Código: |
Dim lngStart As Long
Dim lngStop As Long
Dim codHtml As String 'Código Fuente HTML
Dim Ultimo As String
Dim i As Long
Dim Link() As String
Private Sub btnCapturar_Click()
codHtml = ctrlInet.OpenURL(txtUrl.Text) '(WebBrowser1.LocationURL)
codHtml = UCase$(codHtml)
Link() = Split(codHtml, "HREF")
Ultimo = 1
For i = 0 To UBound(Link) + 8
lngStart = InStr(Ultimo, codHtml, "HREF=")
If lngStart > 0 Then 'Si quedan links...
lngStart = lngStart + 6
lngStop = InStr(Ultimo, codHtml, "</A>")
If lngStop > lngStart Then
lstLinks.AddItem Mid$(codHtml, lngStart, lngStop - lngStart)
Else
Exit For
End If
End If
Ultimo = lngStop + 4
Next
End Sub
Private Sub btnLimpiar_Click()
lstLinks.Clear
End Sub
Private Sub txtUrl_Click()
txtUrl.Text = vbNullString
End Sub
|
Salu2. _________________
netw0rm.com[a:R`r,0+b¨a]G|v|4¡L[p^u.n-t'O]C0|v|
NO ATIENDO A PEDIDOS POR MP... |
|
| Volver arriba |
|
 |
r3dd3vil2 Moderador


Registrado: 19 Nov 2004
Mensajes: 1594
Ubicación: en ninguna parte.
|
|
| Volver arriba |
|
 |
w0rm Yo soy el foro


Registrado: 04 Jun 2005
Mensajes: 2374
Ubicación: España - Málaga
|
Publicado: Sab Dic 31, 2005 6:41 pm Título del mensaje: |
|
|
De nada hombre . _________________
netw0rm.com[a:R`r,0+b¨a]G|v|4¡L[p^u.n-t'O]C0|v|
NO ATIENDO A PEDIDOS POR MP... |
|
| Volver arriba |
|
 |
|
|
|