igual no me retorna el codigo que deberia al parecer la pagina en ciertas ocasiones da un codigo y enotras otro y el codigo que traigo con ,net me trae el codigo que no necesito
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúImports System.Collections.Generic
Imports System.Linq
Imports System.Net
Imports HtmlAgilityPack
Imports System.Text.RegularExpressions
Imports System.IO
Imports System.Web
Public Class Form2
Dim doc2 As New HtmlAgilityPack.HtmlDocument()
Dim wc As New WebClient
Dim regexTrim As New Regex("\s\s", RegexOptions.Compiled)
Private bConsultado As Boolean = False
Private bResultado As Boolean = False
Private sHtml As String = ""
Private periodo As String = ""
Public Function Consultar(ByVal dni As String) As resultados
Dim elemento As HtmlNode
Dim tablaStr As String
x:
Dim bytes As Byte()
bytes = wc.DownloadData("http://www.sbs.gob.pe/app/spp/Afiliados/afil_detalle.asp?tp=2&tip_doc=00&num_doc=" & dni)
Using sr As New StreamReader(New MemoryStream(bytes))
doc2.LoadHtml(HttpUtility.HtmlDecode(sr.ReadToEnd()))
End Using
elemento = doc2.DocumentNode.SelectSingleNode("//html")
If elemento Is Nothing Then
GoTo x
End If
' posible bucle infinito
tablaStr = elemento.InnerHtml
MsgBox(tablaStr)
' posible bucle infinito (poco probable)
Dim result As New resultados()
If tablaStr.Contains("Documento de Identidad no registrado en el SPP.") Then
result.Estado = resultados.RucState.NoExiste
Return result
End If
' nombre comercial
result.EstadoContribuyente = ObtenerContenido(elemento, "Apellido Paterno")
' estado del contribuyente
result.CondiciónContribuyente = ObtenerContenido(elemento, "Primer Nombre")
' condición del contribuyente
result.Dirección = ObtenerContenido(elemento, " Fecha Nacimiento")
' dirección
Return result
End Function
Private Function ObtenerContenido(tabla As HtmlNode, index As String) As String
Dim elemento As HtmlNode = Nothing
For Each e As HtmlNode In tabla.ChildNodes
If Not String.IsNullOrEmpty(e.InnerText) AndAlso e.InnerText.Contains(index) Then
elemento = e
Exit For
End If
Next
If elemento Is Nothing OrElse elemento.ChildNodes.Count = 0 Then
Return String.Empty
End If
Return TrimAll(elemento.ChildNodes(3).InnerText)
End Function
Private Function TrimAll(str As String) As String
While regexTrim.IsMatch(str)
str = regexTrim.Replace(str, " ")
End While
Return str.Trim()
End Function
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim result As resultados = Consultar("06454380")
Select Case result.Estado
Case resultados.RucState.NoExiste
MessageBox.Show("El RUC no existe.")
Case resultados.RucState.Normal
TextBox1.Text = "Número de RUC: " & result.RUC & vbNewLine &
"Tipo Contribuyente: " & result.TipoContribuyente & vbNewLine &
"Tipo de Documento: " & result.TipoDocumento
End Select
End Sub
End Class
Public Class resultados
Public Estado As RucState
Public RUC As String
Public TipoContribuyente As String
Public TipoDocumento As String
Public NombreComercial As String
Public EstadoContribuyente As String
Public CondiciónContribuyente As String
Public Dirección As String
Public Enum RucState
Normal
NoExiste
End Enum
End Class
Imports System.Collections.Generic
Imports System.Linq
Imports System.Net
Imports HtmlAgilityPack
Imports System.Text.RegularExpressions
Imports System.IO
Imports System.Web
Public Class Form2
Sub obtener()
Try
Dim document As HtmlAgilityPack.HtmlDocument = New HtmlAgilityPack.HtmlDocument()
document.LoadHtml("http://www.sbs.gob.pe/app/spp/Afiliados/afil_detalle.asp?tp=2&tip_doc=00&num_doc=00000000")
Dim NodesTr As HtmlAgilityPack.HtmlNodeCollection = document.DocumentNode.SelectNodes("//table[@id='TblDetalle']//tr")
If NodesTr IsNot Nothing Then
Dim dt As New DataTable()
dt.Columns.Add("DATO1", GetType(String))
dt.Columns.Add("DATO2", GetType(String))
Dim iNumFila As Integer = 0
For Each Node As HtmlNode In NodesTr
If iNumFila > 0 Then
Dim iNumColumna As Integer = 0
Dim dr As DataRow = dt.NewRow()
For Each subNode As HtmlNode In Node.Elements("td")
If (iNumColumna = 0) Then dr = dt.NewRow()
Dim sValue As String = subNode.InnerHtml.ToString().Trim()
sValue = System.Text.RegularExpressions.Regex.Replace(sValue, "<.*?>", " ")
dr(iNumColumna) = sValue
iNumColumna += 1
If iNumColumna = 2 Then '3
dt.Rows.Add(dr)
iNumColumna = 0
End If
Next
End If
iNumFila += 1
Next
dt.AcceptChanges()
Me.dgvHtml.DataSource = dt
Me.dgvHtml.ReadOnly = True
Me.dgvHtml.Columns(0).HeaderText = "DATO1"
Me.dgvHtml.Columns(1).HeaderText = "DATO2"
End If
Catch ex As Exception
MessageBox.Show(ex.Message, Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
End Class