Парсинг веб-страниц с помощью VBA
Что такое парсинг данных?
Сбор данных — это метод, который помогает извлечь нужную информацию с веб-страницы HTML в локальный файл, присутствующий на вашем локальном компьютере. Обычно локальный файл может соответствовать файлу Excel, файлу Word или, скажем, любому другому файлу. Microsoft офисное приложение. Это помогает передавать важную информацию с веб-страницы.
Сбор данных становится проще при ежедневной работе над исследовательским проектом, и такой проект полностью зависит от Интернета и веб-сайта. Чтобы дополнительно проиллюстрировать эту тему, давайте возьмем пример дневного трейдера, который запускает макрос Excel для переноса рыночной информации с финансового веб-сайта в таблицу Excel с помощью VBA.
Как подготовить макрос Excel перед выполнением очистки данных с помощью Internet Explorer?
Существуют определенные предварительные условия, которые необходимо выполнить с файлом макроса Excel, прежде чем приступить к процессу очистки данных в Excel.
Эти предпосылки заключаются в следующем: –
Шаг 1) Откройте макрос на основе Excel и получите доступ к опции Excel для разработчика.
Шаг 2) Выберите параметр Visual Basic на ленте «Разработчик».
Шаг 3) Вставьте новый модуль.
Шаг 4) Инициализировать новую подпрограмму
Sub test() End sub
Модуль будет выглядеть следующим образом: –
Шаг 5) Доступ к опции справки на вкладке инструментов и ссылке. Microsoft Библиотека объектов HTML и Microsoft контроль через Интернет.
Следующие файлы следует ссылаться на модуль, поскольку он помогает открыть Internet Explorer и облегчает разработку сценариев макросов.
Теперь файл Excel готов к взаимодействию с Internet Explorer. Следующим шагом будет внедрение макросов, которые облегчат сбор данных в HTML.
Как открыть Internet Explorer с помощью Excel VBA?
Шаг 1) Инициализируйте переменную в подпрограммах, как показано ниже.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument
Шаг 2) Чтобы открыть Internet Explorer с помощью VBA, напишите т.е. видимый=истина и нажмите 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 готов к выполнению функций очистки. Следующий шаг покажет, как можно извлечь информацию из Internet Explorer с помощью VBA.
Как очистить информацию с веб-сайта с помощью VBA?
Предположим, дневной трейдер хочет ежедневно получать доступ к данным с веб-сайта. Каждый раз, когда дневной трейдер нажимает кнопку, он автоматически переносит рыночные данные в Excel.
На вышеуказанном веб-сайте необходимо будет проверить элемент и посмотреть, как структурированы данные.
Шаг 1) Получите доступ к приведенному ниже исходному коду HTML, нажав Control + 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-документ в подпрограмме
Модуль VBA будет выглядеть следующим образом: –
Шаг 3) Инициализируйте элемент коллекции, присутствующий в HTML-документе.
Модуль VBA будет выглядеть следующим образом: –
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 с помощью вложенного цикла, как показано.
Модуль VBA будет выглядеть следующим образом: –
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 можно инициализировать с помощью атрибута диапазона листа Excel или атрибута ячеек листа Excel. Чтобы уменьшить сложность сценария VBA, данные коллекции инициализируются атрибутом ячеек Excel листа 1, присутствующим в книге.
Как только макрос-скрипт будет готов, передайте и назначьте подпрограмму кнопку Excel и выйдите из модуля VBA. Назовите кнопку «Обновить» или любое подходящее имя, которое можно было бы ей инициализировать. В этом примере кнопка инициализируется как обновление.
Шаг 5) Нажмите кнопку обновления, чтобы получить приведенный ниже вывод.
Шаг 6) Сравните результаты в Excel с результатами Internet Explorer.
Резюме
- Очистка данных позволяет пользователю получать только ту информацию, которую он хочет. Чтобы найти лучшие инструменты для этой цели, взгляните на этот список инструментов для очистки веб-страниц, которые помогут вам эффективно извлекать нужную информацию с различных веб-сайтов.
- Очистку можно выполнить с помощью Internet Explorer.
- В случае Internet Explorer процесс очистки происходит медленнее; однако он дает пользователю желаемые результаты.
- Очистку следует выполнять с абсолютной осторожностью и осторожностью, поскольку это может нанести вред и привести к сбою системы, используемой для очистки.