Selenium можно классифицировать как инструмент автоматизации, который облегчает извлечение информации с веб-страниц HTML для выполнения очистки веб-страниц с использованием Google Chrome.
В этом руководстве вы узнаете:
Что такое парсинг данных с использованием селена?
Как подготовить макрос Excel перед выполнением извлечения данных с помощью Selenium?
Как открыть Google Chrome с помощью VBA?
Как открыть веб-сайт в Google Chrome с помощью VBA?
Как очистить информацию с веб-сайта с помощью VBA?
Как подготовить макрос Excel перед выполнением извлечения данных с помощью Selenium?
Есть определенные предварительные условия, которые должны быть выполнены с файлом макроса Excel, прежде чем приступить к процессу очистки данных в Excel.
Эти предварительные условия заключаются в следующем: -
Шаг 1) Откройте макрос на основе Excel и получите доступ к параметрам разработчика Excel.
Шаг 2) Выберите опцию Visual Basic на ленте разработчика.
Шаг 3) Вставьте новый модуль.
Шаг 4) Инициализируйте новую подпрограмму и назовите ее test2.
Sub test2 ()Конец подписки
Следующие результаты будут в модуле: -
Шаг 5) Получите доступ к справочной опции на вкладке инструментов и укажите библиотеку типов Selenium. Следующие библиотеки следует ссылаться на модуль, поскольку он помогает открывать Google Chrome и облегчает разработку макросов.
Теперь файл Excel готов к взаимодействию с Internet Explorer. Следующими шагами будет включение макроса скрипта, который упростит извлечение данных в HTML.
Как открыть Google Chrome с помощью VBA?
Вот шаг, чтобы открыть Google Chrome с помощью VBA
Шаг 1) Объявите и инициализируйте переменные в подпрограмме, как показано ниже.
Sub test2 ()Драйвер Dim как новый веб-драйверЗатемнить rowc, cc, columnC как целое число
Шаг 2) Чтобы открыть Google Chrome с помощью селена и VBA, напишите driver.start «chrome» и нажмите F5 .
Ниже будет код.
Sub test2 ()Драйвер Dim как новый веб-драйверЗатемнить rowc, cc, columnC как целое числоDriver.start "Chrome"Application.Wait Now + Timevalue ("00:00:20")Конец подписки
Модуль будет выглядеть следующим образом: -
Как открыть веб-сайт в Google Chrome с помощью VBA?
Как только вы сможете получить доступ к Google Chrome с помощью VBA, следующим шагом будет включение доступа к веб-сайту с помощью VBA. Этому способствует функция get, в которой URL-адрес должен передаваться в атрибуте в двойных кавычках.
Выполните следующие шаги, как показано
Модуль будет выглядеть следующим образом: -
Нажмите F5, чтобы выполнить макрос.
Следующая веб-страница будет открыта в Google Chrome, как показано
Sub test2 ()Драйвер Dim как новый веб-драйверЗатемнить rowc, cc, columnC как целое числоDriver.start "Chrome"Driver.get "http://demo.guru99.com/test/web-table-element.php"Application.Wait Now + Timevalue ("00:00:20")Конец подписки
Теперь макрос Excel готов к выполнению задач очистки. На следующем шаге будет показано, как можно извлечь информацию, применяя селен и VBA.
Как очистить информацию с веб-сайта с помощью VBA?
Предположим, дневной трейдер хочет получать доступ к данным с веб-сайта на ежедневной основе. Каждый раз, когда дневной трейдер нажимает кнопку, он должен автоматически переводить рыночные данные в Excel.
На указанном выше веб-сайте необходимо проверить элемент и посмотреть, как структурированы данные. Получите доступ к приведенному ниже исходному коду HTML, нажав Ctrl + Shift + I
Компания
Группа
Предварительное закрытие (Rs)
Текущая цена (рупии)
% изменения
Исходный код будет следующим: -
Как видно, данные структурированы как одна таблица HTML. Следовательно, чтобы извлечь все данные из таблицы HTML, потребуется разработать макрос, который извлекает информацию заголовка таблицы HTML и соответствующие данные, связанные с таблицей. Выполните следующие задачи, как показано: -
Шаг 1) Сформулируйте цикл for, который обрабатывает информацию заголовка HTML как коллекцию. Драйвер селена должен найти информацию заголовка таблицы HTML. Для этого мы используем методы FindElementByClass () и FindElementByTag () для выполнения задачи, как показано.
Модуль VBA будет выглядеть следующим образом: -
Sub test2 ()Драйвер Dim как новый WebDriverТусклый rowc, cc, columnC как целое числоrowc = 2Application.ScreenUpdating = Falsedriver.Start "хром"driver.Get "http://demo.guru99.com/test/web-table-element.php"Для каждого входа driver.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Для каждого t In th.FindElementsByTag ("th")Sheet2.Cells (1, cc) .Value = t.Textcc = cc + 1Следующий тСледующий th
Шаг 2) Затем драйвер селена найдет данные таблицы, используя аналогичный подход, как упоминалось выше. Вам нужно написать следующий код: -
Sub test2 ()Драйвер Dim как новый WebDriverТусклый rowc, cc, columnC как целое числоrowc = 2Application.ScreenUpdating = Falsedriver.Start "хром"driver.Get "http://demo.guru99.com/test/web-table-element.php"Для каждого входа driver.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Для каждого t In th.FindElementsByTag ("th")Sheet2.Cells (1, cc) .Value = t.Textcc = cc + 1Следующий тСледующий thДля каждого tr In driver.FindElementByClass ("dataTable"). FindElementByTag ("tbody"). FindElementsByTag ("tr")columnC = 1Для каждого td в tr.FindElementsByTag ("td")Sheet2.Cells (rowc, columnC) .Value = td.TextстолбецC = столбецC + 1Следующий тдrowc = rowc + 1Следующий трApplication.Wait Now + TimeValue ("00:00:20")Конец подписки
Модуль vba будет выглядеть следующим образом: -
Excel может быть инициализирован с помощью атрибута Range листа Excel или атрибута ячеек листа Excel. Чтобы упростить сценарий VBA, данные коллекции инициализируются атрибутом ячеек excel листа 2, присутствующего в книге. Кроме того, текстовый атрибут помогает получить текстовую информацию, размещенную под тегом HTML.
Sub test2 ()Драйвер Dim как новый WebDriverТусклый rowc, cc, columnC как целое числоrowc = 2Application.ScreenUpdating = Falsedriver.Start "хром"driver.Get "http://demo.guru99.com/test/web-table-element.php"Для каждого входа driver.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Для каждого t In th.FindElementsByTag ("th")Sheet2.Cells (1, cc) .Value = t.Textcc = cc + 1Следующий тСледующий thДля каждого tr In driver.FindElementByClass ("dataTable"). FindElementByTag ("tbody"). FindElementsByTag ("tr")columnC = 1Для каждого td в tr.FindElementsByTag ("td")Sheet2.Cells (rowc, columnC) .Value = td.TextстолбецC = столбецC + 1Следующий тдrowc = rowc + 1Следующий трApplication.Wait Now + TimeValue ("00:00:20")Конец подписки
Модуль vba будет выглядеть следующим образом: -
Шаг 3) Как только макрос-скрипт будет готов, передайте и назначьте подпрограмму кнопке excel и выйдите из модуля VBA. Обозначьте кнопку как обновить или любое подходящее имя, которое может быть инициализировано для нее. В этом примере кнопка инициализируется как обновить.
Шаг 4) Нажмите кнопку обновления, чтобы получить указанный ниже результат.
Шаг 5) Сравните результаты в Excel с результатами Google Chrome
Резюме:
Selenium можно классифицировать как инструмент автоматизации, который облегчает извлечение информации с веб-страниц HTML для выполнения очистки веб-страниц с использованием Google Chrome.
Очистку Интернета следует выполнять осторожно.
Как правило, извлечение информации противоречит условиям веб-сайта.
Когда парсинг выполняется через селен, он предлагает поддержку нескольких браузеров.
Другими словами, парсер может выполнять аналогичные задачи парсинга через Firefox, а также в Internet Explorer.