Извлекать данные из Интернета без идентификатора?

Как я могу извлечь таблицу с веб-сайта https://www.lyngsat.com/tvchannels/in/Aaj-Tak.html в Excel, у которого нет идентификатора?

Я хочу извлечь данные из таблицы, содержащей положение спутника, частоту и шифрование.

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

Должны ли мы угадать, какой стол вы хотите?

Tim Williams 27.05.2019 22:39

Это таблица с положением спутника, частотой и шифрованием.

dhananjay dewan 27.05.2019 22:43

Перебирайте все таблицы, пока не найдете одну с «Положением» во второй ячейке второй строки.

Tim Williams 27.05.2019 22:45
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
3
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я бы использовал xmlhttp. Нужная таблица находится в индексе 11 (индексация на основе 0). Я использую буфер обмена как простой способ записать таблицу. Если вы не хотите использовать буфер обмена, вы можете зациклить строки и столбцы таблицы, как показано в WriteTable sub здесь.

Этот

html.querySelectorAll("table").item(11)

выбирает таблицу по этому индексу в ответе. Эквивалентно

html.getElementsByTagName("table")(11)

Существует еще один уникальный идентификатор при использовании в сочетании с селектором типа table, в выводе которого является значением атрибута таблицы border1:

так что вы могли бы использовать

clipboard.SetText html.querySelector("table[border='1']").outerHTML

VBA:

Option Explicit

Public Sub GetTable()
    Dim html As HTMLDocument, clipboard As Object '<  VBE > Tools > References > Microsoft HTML Object Library
    Set html = New HTMLDocument
    Set clipboard = GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
    With CreateObject("MSXML2.XMLHTTP")
        .Open "GET", "https://www.lyngsat.com/tvchannels/in/Aaj-Tak.html", False
        .send
        html.body.innerHTML = .responseText
    End With
    clipboard.SetText html.querySelectorAll("table").item(11).outerHTML  ' html.querySelector("table[border='1']").outerHTML
    clipboard.PutInClipboard
    ThisWorkbook.Worksheets("Sheet1").Range("A1").PasteSpecial
End Sub

Другие вопросы по теме