Парсинг веб-страниц с помощью VBA

Что такое парсинг данных?

Сбор данных — это метод, который помогает извлечь нужную информацию с веб-страницы HTML в локальный файл, присутствующий на вашем локальном компьютере. Обычно локальный файл может соответствовать файлу Excel, файлу Word или, скажем, любому другому файлу. Microsoft офисное приложение. Это помогает передавать важную информацию с веб-страницы.

Сбор данных становится проще при ежедневной работе над исследовательским проектом, и такой проект полностью зависит от Интернета и веб-сайта. Чтобы дополнительно проиллюстрировать эту тему, давайте возьмем пример дневного трейдера, который запускает макрос Excel для переноса рыночной информации с финансового веб-сайта в таблицу Excel с помощью VBA.

Как подготовить макрос Excel перед выполнением очистки данных с помощью Internet Explorer?

Существуют определенные предварительные условия, которые необходимо выполнить с файлом макроса Excel, прежде чем приступить к процессу очистки данных в Excel.

Эти предпосылки заключаются в следующем: –

Шаг 1) Откройте макрос на основе Excel и получите доступ к опции Excel для разработчика.

Подготовьте макрос Excel перед выполнением очистки данных с помощью Internet Explorer

Шаг 2) Выберите параметр Visual Basic на ленте «Разработчик».

Подготовьте макрос Excel перед выполнением очистки данных с помощью Internet Explorer

Шаг 3) Вставьте новый модуль.

Подготовьте макрос Excel перед выполнением очистки данных с помощью Internet Explorer

Шаг 4) Инициализировать новую подпрограмму

Sub test()
End sub

Модуль будет выглядеть следующим образом: –

Подготовьте макрос Excel перед выполнением очистки данных с помощью Internet Explorer

Шаг 5) Доступ к опции справки на вкладке инструментов и ссылке. Microsoft Библиотека объектов HTML и Microsoft контроль через Интернет.

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

Подготовьте макрос Excel перед выполнением очистки данных с помощью 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 с помощью Excel VBA.

Откройте Internet Explorer с помощью Excel VBA.

Как открыть сайт в 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, чтобы выполнить макрос. Следующая веб-страница будет открыта, как показано

Откройте веб-сайт в Internet Explorer с помощью VBA.

Теперь макрос 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. Назовите кнопку «Обновить» или любое подходящее имя, которое можно было бы ей инициализировать. В этом примере кнопка инициализируется как обновление.

Очистить информацию с веб-сайта с помощью VBA

Шаг 5) Нажмите кнопку обновления, чтобы получить приведенный ниже вывод.

Очистить информацию с веб-сайта с помощью VBA

Шаг 6) Сравните результаты в Excel с результатами Internet Explorer.

Очистить информацию с веб-сайта с помощью VBA

Резюме

  • Очистка данных позволяет пользователю получать только ту информацию, которую он хочет. Чтобы найти лучшие инструменты для этой цели, взгляните на этот список инструментов для очистки веб-страниц, которые помогут вам эффективно извлекать нужную информацию с различных веб-сайтов.
  • Очистку можно выполнить с помощью Internet Explorer.
  • В случае Internet Explorer процесс очистки происходит медленнее; однако он дает пользователю желаемые результаты.
  • Очистку следует выполнять с абсолютной осторожностью и осторожностью, поскольку это может нанести вред и привести к сбою системы, используемой для очистки.