[Ayuda] Extraer URL del código fuente de una web y ponerlo en un ListBox

Iniciado por error404x, 16 Junio 2015, 00:53 AM

0 Miembros y 1 Visitante están viendo este tema.

error404x

Hola amigos , soy principiante en esto , y quisiera su ayuda por favor.
Lo que quiero hacer es extraer todas las url de los capitulos de un manga buscado en esta web " submanga.com " y que se muestren en un ListBox en el orden que estan , masomenos asi :

Citarhttp://submanga.com/Gakuen_Heaven/23/244316
http://submanga.com/Gakuen_Heaven/22/243793
http://submanga.com/Gakuen_Heaven/21/243638
http://submanga.com/Gakuen_Heaven/20/243383
etc.....

Para esto cree un TEXTBOX en el cual introduzco el nombre del manga que quiero y un BUTTON que realiza la busqueda en un webbrowser asi
" http://submanga.com/nombre_del_manga/completa "

=====Hasta aqui todo bien======

El problema es en la busqueda de los url .... en el LISTBOX me botan varias url menos la de los capitulos
Por ejemplo , si busco el manga "Gakuen Heaven" me sale así en el ListBox
Citar
http://submanga.com/Gakuen_Heaven
http://submanga.com/Gakuen_Heaven/completa
http://submanga.com/Gakuen_Heaven/scanlation
etc.... y varias url similares pero menos la de los capitulos

WebBrowser1

Código (vbnet) [Seleccionar]
   Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
       Try
           For Each ETIQUETA As HtmlElement In WebBrowser1.Document.All
               If ETIQUETA.TagName = "A" Then
                   If ETIQUETA.OuterHtml.Contains("http://submanga.com/" & TextBox4.Text & "/") Then
                       Try
                           Dim MIURL As String = ETIQUETA.OuterHtml
                           MIURL = MIURL.Remove(0, MIURL.IndexOf("href=") + 6)
                           MIURL = MIURL.Substring(0, MIURL.IndexOf(">") - 1)
                           ListBox1.Items.Add(MIURL)
                       Catch ex As Exception
                       End Try
                   End If
               End If
           Next
       Catch ex As Exception
           MsgBox(ex.Message)
       End Try
   End Sub


Si no fuera mucha molestia , me podrían decir que parte esta mal

Eleкtro

Usa las etiquetas para insertar código, es una norma del foro.




Cita de: error404x en 16 Junio 2015, 00:53 AMsi busco el manga "Gakuen Heaven"...

Debes modificar los espacios por guiones bajos (también deberías tratar de realizar una comparación ignorando mayusculas/minusculas), así, funciona:

Código (vbnet) [Seleccionar]
...
If etiqueta.OuterHtml.ToLower.Contains(String.Format("http://submanga.com/{0}/", "Gakuen Heaven".ToLower.Replace(" "c, "_"c))) Then
...


Saludos!








error404x

Cita de: Eleкtro en 16 Junio 2015, 01:25 AM
Usa las etiquetas para insertar código, es una norma del foro.




Debes modificar los espacios por guiones bajos (también deberías tratar de realizar una comparación ignorando mayusculas/minusculas), así, funciona:

Código (vbnet) [Seleccionar]
...
If etiqueta.OuterHtml.ToLower.Contains(String.Format("http://submanga.com/{0}/", "Gakuen Heaven".ToLower.Replace(" "c, "_"c))) Then
...


Saludos!

Muchas gracias amigo Electro , me ha funcionado  :D

Disculpa y si quisiera poner el nombre del capitulo en lugar de la url ? pero que al clickear el nombre me lleve a la url del capitulo

Programe el ListBox para que al clickear el link se abra en un WebBrowser

Código (vbnet) [Seleccionar]

Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
      Navegador.WebBrowser1.Navigate(ListBox1.SelectedItem)
      Navegador.Show()
End Sub


Actualmente en el ListBox se me muestra asi
Citar
Ejemplo :
http://submanga.com/Gakuen_Heaven/23/244316
http://submanga.com/Gakuen_Heaven/22/243793
http://submanga.com/Gakuen_Heaven/21/243638
http://submanga.com/Gakuen_Heaven/20/243383

Pero quiero que se me vea asi
Citar
Ejemplo :
Gakuen Heaven 23
Gakuen Heaven 22
Gakuen Heaven 21
Gakuen Heaven 20

Que deberia añadir o modificar?

Eleкtro

Cita de: error404x en 16 Junio 2015, 02:03 AMQue deberia añadir o modificar?

El nombre + número del capítulo:
Código (vbnet) [Seleccionar]
ETIQUETA.InnerText

El número del capítulo está en la etiqueta STRONG, bien puedes hacerlo así:
Código (vbnet) [Seleccionar]
ETIQUETA.Children(0).InnerText

O así:
Código (vbnet) [Seleccionar]
ETIQUETA.GetElementsByTagName("STRONG").Item(0).InnerText

Saludos!