Extraer tabla de html en htmltable en asp.net vb (htmlagilitypack)

asp.net html-agility-pack html-table vb.net web-scraping

Pregunta

Estoy intentando tomar una tabla html de una página remota y mostrar el contenido de esta tabla en una tabla html en mi sitio. Estoy usando htmlagility pack. Hasta aquí está mi código:

Imports HtmlAgilityPack
Partial Class ContentGrabExperiment
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        'fetch the remote html page
        Dim web As New HtmlWeb()
        Dim html As HtmlAgilityPack.HtmlDocument = web.Load("http://www.thesite.com/page.html")

        'Create table
        Dim outputTable As New HtmlTable
        Dim tableRow As New HtmlTableRow
        Dim tableCell As New HtmlTableCell


        'Target the <table> tag 
        For Each table As HtmlNode In html.DocumentNode.SelectNodes("//table")
            'Target the <tr> tags within the table
            For Each row As HtmlNode In table.SelectNodes("//tr")
                'Target the <td> tags within the <tr> tags
                For Each cell As HtmlNode In row.SelectNodes("//td")
                    'Set the value to that of the <td>
                    tableCell.InnerText = cell.InnerHtml
                    'Add the cell to the row
                    tableRow.Cells.Add(tableCell)
                Next
                'Add row to the outputTable 
                outputTable.Rows.Add(tableRow)
            Next
        Next
        'Add the table to the page
        PlaceHolderTable.Controls.Add(outputTable)
    End Sub
End Class

De esto esperaba obtener la tabla completa con texto interno de la página, como una tabla html que luego puedo manipular. Lo que obtengo de este código es:

 <table>
    <tr>
        <td>&amp;nbsp;</td>
    </tr>
</table>

Por favor, ¿puede alguien señalar dónde me equivoco con mi sintaxis? Cualquier ayuda muy apreciada!

Respuesta popular

1) Solo tienes un TableRow y un TableCell. Deberá crear uno nuevo para cada fila / celda. Puede reutilizar las variables pero necesitará "Nuevo" un objeto en ellas.

2) Es posible que deba seleccionar ./tr y ./td para obtener solo filas y celdas en la tabla / fila actual.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué