Извлечение таблицы из html в htmltable в asp.net vb (htmlagilitypack)

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

Вопрос

Я пытаюсь захватить таблицу html с удаленной страницы и отобразить содержимое этой таблицы в htmltable на моем сайте. Я использую пакет htmlagility. Пока вот мой код:

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

Из этого я ожидал получить полную таблицу с внутренним текстом со страницы, как htmltable, которую я могу манипулировать. Из этого кода я получаю:

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

Пожалуйста, кто-нибудь может указать, где я ошибаюсь в своем синтаксисе. Любая помощь очень ценится!

Популярные ответы

1) У вас есть только один TableRow и один TableCell. Вам нужно будет создать новую для каждой строки / ячейки. Вы можете повторно использовать переменные, но вам нужно будет «Создать» объект в них.

2) Вам может потребоваться выбрать ./tr и ./td чтобы получить только строки и ячейки в текущей таблице / строке.



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow