Веб-скрейпинг на VBAping чтобы преуспеть
⚡ Умное резюме
Веб-скрейпингping с использованием VBA extracперенос данных с HTML-страниц непосредственно в Excel с использованием автоматизации Internet Explorer и... Microsoft Библиотека HTML-объектов для навигации по сайту, чтения HTML-таблицы и записи полученных значений в ячейки таблицы.

Что такое DataScra?ping?
Сбор данныхping это техника, которая помогает extracПеренесите необходимую информацию с HTML-страницы в локальный файл на вашем компьютере. Обычно этим локальным файлом является файл Excel, файл Word или любой другой подобный файл. Microsoft Офисное приложение. Оно помогает перенаправлять важную информацию с веб-страницы.
Сбор данныхping Это становится ценным в исследовательском проекте, который ежедневно зависит от интернета. В качестве примера рассмотрим трейдера, который запускает макрос в Excel для извлечения рыночной информации с финансового веб-сайта в электронную таблицу Excel с помощью VBA.
Как подготовить макрос Excel перед сбором данныхping (Интернет-проводник)
Перед началом сбора данных необходимо выполнить определенные предварительные действия с файлом макроса Excel.ping процесса.
Эти предпосылки заключаются в следующем:
Шаг 1) Откройте макрос, созданный в Excel, и воспользуйтесь функцией «Разработчик» в Excel.
Шаг 2) Выберите параметр Visual Basic на вкладке "Разработчик".
Шаг 3) Вставьте новый модуль.
Шаг 4) Инициализируйте новую подпрограмму.
Sub test() End Sub
В результате выполнения модуля получится следующее:
Шаг 5) Перейдите в раздел «Справочник» на вкладке «Инструменты» и укажите ссылку на соответствующий ресурс. Microsoft Библиотека объектов HTML и Microsoft Управление интернетом.
Следующие файлы необходимо добавить в модуль, поскольку они помогают открывать Internet Explorer и упрощают создание макросов.
Теперь файл Excel готов к взаимодействию с Internet Explorer. Следующий шаг — добавление макросов, облегчающих сбор данных.ping в HTML.
Как открыть Internet Explorer с помощью VBA в Excel
Шаг 1) Инициализируйте переменную в подпрограмме, как показано ниже.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument
Шаг 2) Чтобы открыть Internet Explorer с помощью VBA, напишите ie.Visible = True и нажмите F5.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument ie.Visible = True
Модуль будет выглядеть следующим образом:
Как открыть веб-сайт в Internet Explorer с помощью VBA
Вот пошаговая инструкция по открытию веб-сайта в Internet Explorer с помощью VBA.
Шаг 1) После того, как вы сможете получить доступ к Internet Explorer с помощью Excel VBA, следующим шагом будет доступ к веб-сайту с помощью VBA. Это облегчается атрибутом Navigate, где URL Передаётся в двойных кавычках. Следуйте указанным шагам.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE
Шаг 2) Нажмите клавишу F5 для выполнения макроса. Откроется следующая веб-страница, как показано на рисунке.
Теперь макрос Excel готов к выполнению операции скрапинга.ping функции. На следующем шаге показано, как можно извлечь эту информацию.tracted из Internet Explorer с использованием VBA.
Как извлечь информацию с веб-сайта с помощью VBA
Предположим, трейдер хочет ежедневно получать доступ к данным с веб-сайта. При каждом нажатии кнопки данные о рынке должны автоматически импортироваться в Excel.
На указанном выше веб-сайте необходимо изучить элемент и посмотреть, как структурированы данные.
Шаг 1) Чтобы получить доступ к исходному коду приведенного ниже HTML-кода, нажмите Ctrl + Shift + Я.
<table class="datatable">
<thead>
<tr>
<th>Company</th>
<th>Group</th>
<th>Pre Close (Rs)</th>
<th>Current Price (Rs)</th>
<th>% Change</th>
</tr>
Исходный код будет выглядеть следующим образом:
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document
Как видите, данные структурированы в виде единой HTML-таблицы. Поэтому для извлечения всех данных из HTML-таблицы необходимо создать макрос, который будет собирать данные в виде коллекции.
Затем собранные данные вставляются в Excel. Для достижения желаемых результатов выполните следующие шаги.
Шаг 2) Инициализируйте HTML-документ в подпрограмме.
Шаг 3) Инициализируйте элемент коллекции, присутствующий в HTML-документе.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table")
Шаг 4) Инициализируйте ячейки листа Excel с помощью вложенного цикла, как показано на рисунке.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table")
Инициализацию данных в Excel можно выполнить с помощью атрибута Range или атрибута Cells листа. Для упрощения VBA-скрипта данные коллекции инициализируются атрибутом Cells листа 1 в рабочей книге.
После того, как макрос будет готов, назначьте подпрограмму кнопке Excel и выйдите из модуля VBA. Присвойте кнопке название «Обновить» или любое другое подходящее имя. В этом примере кнопка называется «Обновить».
Шаг 5) Нажмите кнопку «Обновить», чтобы получить результат, показанный ниже.
Шаг 6) Сравните результаты в Excel с результатами в Internet Explorer.











