JordyS Ответов: 2

Как очистить веб-таблицу и отобразить ее в VB.NET заявление?


Я пытаюсь захватить таблицу данных с веб-страницы и отобразить ее в vb.NET применение.

Проводя некоторые исследования, я обнаружил, что пакет HTML Agility Pack содержит функции, которые позволят легко соскабливать/извлекать данные с веб-страницы.

Пакет не содержит никакой документации, и я, кажется, не могу найти правильное решение в интернете. Надеюсь, кто-нибудь подтолкнет меня в правильном направлении.

Это стол, который я пытаюсь вытащить.

http://testapplications.net16.net/test.html[^]

Это то, что я нашел, просматривая сеть и пробуя различные методы:

' Load the html document
        Dim web As New HtmlWeb()
        Dim doc As HtmlDocument = web.Load("http://testapplications.net16.net/test.html")

        ' Get all tables in the document
        Dim tables As HtmlNodeCollection = doc.DocumentNode.SelectNodes("/table")

        ' Iterate all rows in the first table
        Dim rows As HtmlNodeCollection = tables(0).SelectNodes("./tr")
        For i As Integer = 0 To rows.Count - 1

            ' Iterate all columns in this row
            Dim cols As HtmlNodeCollection = rows(i).SelectNodes("./td")
            For j As Integer = 0 To cols.Count - 1

                ' Get the value of the column and print it
                Dim value As String = cols(j).InnerText
                MessageBox.Show(value)
            Next
        Next


Я получаю NullReference ошибка в следующей строке:

Dim rows As HtmlNodeCollection = tables(0).SelectNodes("./tr")


Ссылка на объект не установлена на экземпляр объекта.

Я предполагаю, что это означает, что TR не может быть найден в коде таблицы?

Что я уже пробовал:

Я искал в интернете документацию или решения своей проблемы, но не смог найти ни одной статьи или учебника.

2 Ответов

Рейтинг:
1

Sinisa Hajnal

Есть много статей, некоторые здесь, некоторые на других сайтах...вот один из них, чтобы вы начали. В следующий раз ищи сильнее. В большинстве примеров используется C#, но он легко преобразуется в VB.NET.

Выскабливание паутины с помощью индикатора выполнения[^]


Рейтинг:
1

Member 11981296

Try this one:

<pre> Dim web As New HtmlWeb()
        Dim doc As HtmlDocument = web.Load("https://www.w3schools.com/html/html_tables.asp")

        ' Get all tables in the document
        Dim tables As HtmlNodeCollection = doc.DocumentNode.SelectNodes("//table[@id='customers']")

        ' Iterate all rows in the first table
        Dim rows As HtmlNodeCollection = tables(0).SelectNodes("//tr")
        For i As Integer = 0 To rows.Count - 1

            ' Iterate all columns in this row
            Dim cols As HtmlNodeCollection = rows(i).SelectNodes("//td")
            For j As Integer = 0 To cols.Count - 1

                ' Get the value of the column and print it
                Dim value As String = cols(j).InnerText
                MessageBox.Show(value)
            Next
        Next


Member 12428601

на самом деле у меня есть тот же вопрос, но в моем случае есть TD и TR.
как это?
как вы можете видеть на изображении ссылки ниже я хочу получить данные из TD и TR


https://ibb.co/kg1zvK