Учебники

13) Чистка веб-страниц с помощью 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, напишите 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"http://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 + I

<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 "http://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 "http://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 "http://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 листа Excel или с помощью атрибута ячейки листа Excel. Чтобы уменьшить сложность сценария VBA, данные сбора инициализируются атрибутом ячеек Excel листа 1, присутствующим в рабочей книге.

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

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

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

Резюме:

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