Веб-парсинг с VBA

Содержание:

Anonim

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

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

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

В этом руководстве вы узнаете:

  • Что такое парсинг данных?
  • Как подготовить макрос Excel перед выполнением извлечения данных с помощью Internet Explorer?
  • Как открыть Internet Explorer с помощью Excel VBA?
  • Как открыть сайт в Internet Explorer с помощью VBA?
  • Как очистить информацию с веб-сайта с помощью 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 InternetExplorerDim doc As New HTMLDocument

Шаг 2) Чтобы открыть Internet Explorer с помощью VBA, напишите ie visible = true и нажмите F5.

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentIe.visible=true

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

Как открыть сайт в Internet Explorer с помощью VBA?

Вот шаги, чтобы открыть веб-сайт в Internet Explorer с помощью VBA.

Шаг 1) Как только вы получите доступ к Internet Explorer с помощью Excel VBA, следующий шаг будет включать доступ к веб-сайту с помощью VBA. Этому способствует атрибут Navigate, в котором URL-адрес должен передаваться в атрибуте в двойных кавычках. Выполните следующие шаги, как показано.

Sub test()Dim, ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate"http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETE

Шаг 2) - Нажмите F5, чтобы выполнить макрос. Следующая веб-страница будет открыта, как показано

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

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

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

На указанном выше веб-сайте необходимо проверить элемент и посмотреть, как структурированы данные.

Шаг 1) Получите доступ к приведенному ниже исходному коду HTML, нажав Ctrl + Shift + I.

Исходный код будет следующим: -

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.document

Как видно, данные структурированы как одна таблица HTML. Следовательно, чтобы извлечь все данные из таблицы html, потребуется разработка макроса, который собирает данные в виде коллекции.

Затем коллекция будет вставлена ​​в Excel. Для достижения желаемых результатов выполните следующие шаги: -

Шаг 2) Инициализируйте HTML-документ в подпрограмме

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

Шаг 3) Инициализируйте элемент коллекции, присутствующий в документе HTML.

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

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.documentSet ecoll = doc.getElementsByTagName("table")

Шаг 4) Инициализируйте ячейки листа Excel с помощью вложенного цикла, как показано

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

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.documentSet ecoll = doc.getElementsByTagName("table")

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

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

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

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

Резюме:

  • Очистка данных позволяет пользователю извлекать только ту информацию, которая ему нужна.
  • Очистку можно выполнить с помощью Internet Explorer.
  • В случае Internet Explorer процесс очистки происходит медленнее; тем не менее, он обеспечивает желаемые результаты пользователю.
  • Очистку следует выполнять с абсолютной осторожностью и осторожностью, так как это может повредить и вывести из строя систему, используемую для очистки.
CompanyGroupPre Close (Rs)Current Price (Rs)% Change