Селен можна класифікувати як інструмент автоматизації, який полегшує вишкрібання інформації з веб-сторінок HTML для здійснення веб-вишкрібання за допомогою google chrome.
У цьому підручнику ви дізнаєтесь:
Що таке скрепінг даних із використанням селену?
Як підготувати макрос Excel перед тим, як виконувати вишкрібання даних за допомогою селену?
Як відкрити Google Chrome за допомогою VBA?
Як відкрити веб-сайт у Google chrome за допомогою VBA?
Як зішкребти інформацію з веб-сайту за допомогою VBA?
Як підготувати макрос Excel перед тим, як виконувати вишкрібання даних за допомогою селену?
Існують певні передумови, які необхідно виконати у файлі макросу excel, перш ніж входити в процес вишкрібання даних у excel.
Ці передумови є такими: -
Крок 1) Відкрийте макрос на основі Excel і отримайте доступ до опції розробника Excel.
Крок 2) Виберіть параметр Visual Basic під стрічкою розробника.
Крок 3) Вставте новий модуль.
Крок 4) Ініціалізуйте нову підпрограму та назвіть її test2.
Підтест2 ()Кінець суб
Нижче будуть результати в модулі: -
Крок 5) Перейдіть до опції посилання на вкладці інструменту та довідкової бібліотеки типу Selenium. На наступні бібліотеки слід посилатись на модуль, оскільки він допомагає у відкритті google chrome та полегшує розробку макроскриптів.
Тепер файл Excel готовий до взаємодії з Internet Explorer. Наступними кроками було б включити макрос скрипт, який би полегшив скрапінг даних у HTML.
Як відкрити Google Chrome за допомогою VBA?
Ось крок для відкриття Google Chrome за допомогою VBA
Крок 1) Оголосіть та ініціалізуйте змінні в підпрограмі, як показано нижче
Підтест2 ()Затемнений драйвер як новий веб-драйверЗатемнювати rowc, cc, columnC як ціле число
Крок 2) Щоб відкрити google chrome за допомогою селену та VBA, напишіть driver.start "chrome" та натисніть F5 .
Далі буде код.
Підтест2 ()Затемнений драйвер як новий веб-драйверЗатемнювати rowc, cc, columnC як ціле числоDriver.start "Chrome"Застосування. Зачекайте зараз + значення часу ("00:00:20")Кінець суб
Результат модуля буде таким:
Як відкрити веб-сайт у Google chrome за допомогою VBA?
Як тільки ви зможете отримати доступ до google chrome за допомогою VBA, наступним кроком буде включення доступу до веб-сайту за допомогою VBA. Цьому сприяє функція get, при якій URL-адреса повинна передаватися як подвійні лапки в атрибуті.
Виконайте такі дії, як показано
Модуль буде виглядати наступним чином: -
Натисніть F5, щоб виконати макрос.
Наступна веб-сторінка буде відкрита в google chrome, як показано
Підтест2 ()Затемнений драйвер як новий веб-драйверЗатемнювати rowc, cc, columnC як ціле числоDriver.start "Chrome"Driver.get "http://demo.guru99.com/test/web-table-element.php"Застосування. Зачекайте зараз + значення часу ("00:00:20")Кінець суб
Тепер макрос excel готовий до виконання завдань зі скребування. На наступному кроці буде показано, як можна отримати інформацію за допомогою застосування селену та VBA.
Як зішкребти інформацію з веб-сайту за допомогою VBA?
Припустимо, що день трейдер хоче отримувати доступ до даних веб-сайту щодня. Кожного разу, коли трейдер натискає кнопку, він повинен автоматично перетягувати ринкові дані в Excel.
З вищезазначеного веб-сайту потрібно було б перевірити елемент та спостерігати за структурою даних. Перейдіть до наведеного нижче вихідного коду HTML, натиснувши control + Shift + I
<теця>
Компанія
Група
Попереднє закриття (Rs)
Поточна ціна (рупій)
% змін
Вихідний код буде таким:
Як видно, дані структуровані як одна таблиця HTML. Тому, щоб витягти цілі дані з таблиці HTML, потрібно розробка макросу, який витягує інформацію заголовка таблиці HTML та відповідні дані, пов'язані з таблицею. Виконайте такі завдання, як показано: -
Крок 1) Сформулюйте цикл for, який проходить через інформацію заголовка HTML як колекцію. Драйвер селену повинен знайти інформацію заголовка таблиці HTML. Для цього ми використовуємо метод FindElementByClass () та FindElementByTag () для виконання завдання, як показано
Модуль VBA буде виглядати наступним чином: -
Підтест2 ()Затемнений драйвер як новий WebDriverПриглушити rowc, cc, columnC Як ціле числорядокc = 2Application.ScreenUpdating = Неправильнодрайвер.Запустіть "хром"driver.Get "http://demo.guru99.com/test/web-table-element.php"Для кожного го в драйвері.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Для кожного t In th.FindElementsByTag ("th")Аркуш 2. Клітини (1, куб. См). Значення = t. Текстcc = cc + 1Далі тНаступний го
Крок 2) Далі драйвер селену знаходив би дані таблиці, використовуючи подібний підхід, як згадано вище. Ви повинні написати такий код: -
Підтест2 ()Затемнений драйвер як новий WebDriverПриглушити rowc, cc, columnC Як ціле числорядокc = 2Application.ScreenUpdating = Неправильнодрайвер.Запустіть "хром"driver.Get "http://demo.guru99.com/test/web-table-element.php"Для кожного го в драйвері.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Для кожного t In th.FindElementsByTag ("th")Аркуш 2. Клітини (1, куб. См). Значення = t. Текстcc = cc + 1Далі тНаступний гоДля кожного tr In драйвера.FindElementByClass ("dataTable"). FindElementByTag ("tbody"). FindElementsByTag ("tr")стовпецьC = 1Для кожного td у tr.FindElementsByTag ("td")Аркуш 2. Клітини (rowc, columnC). Значення = td.TextстовпецьC = стовпецьC + 1Наступний tdrowc = rowc + 1Далі трЗастосування. Зачекайте зараз + TimeValue ("00:00:20")Кінець Sub
Модуль vba буде виглядати наступним чином: -
Excel може бути ініціалізований за допомогою атрибута Range аркуша Excel або через атрибут комірок аркуша Excel. Щоб зменшити складність сценарію VBA, дані колекції ініціалізуються до атрибута комірок excel аркуша 2, присутнього в книзі. Крім того, текстовий атрибут допомагає отримати текстову інформацію, розміщену під тегом HTML.
Підтест2 ()Затемнений драйвер як новий WebDriverПриглушити rowc, cc, columnC Як ціле числорядокc = 2Application.ScreenUpdating = Неправильнодрайвер.Запустіть "хром"driver.Get "http://demo.guru99.com/test/web-table-element.php"Для кожного го в драйвері.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Для кожного t In th.FindElementsByTag ("th")Аркуш 2. Клітини (1, куб. См). Значення = t. Текстcc = cc + 1Далі тНаступний гоДля кожного tr In драйвера.FindElementByClass ("dataTable"). FindElementByTag ("tbody"). FindElementsByTag ("tr")стовпецьC = 1Для кожного td у tr.FindElementsByTag ("td")Аркуш 2. Клітини (rowc, columnC). Значення = td.TextстовпецьC = стовпецьC + 1Наступний tdrowc = rowc + 1Далі трЗастосування. Зачекайте зараз + TimeValue ("00:00:20")Кінець Sub
Модуль vba буде виглядати наступним чином: -
Крок 3) Як тільки скрипт макроконтролю буде готовий, передайте та призначте підпрограму кнопці excel та вийдіть з модуля VBA. Позначте кнопку як оновлення або будь-яке відповідне ім'я, яке може бути ініціалізоване до неї. У цьому прикладі кнопка ініціалізується як оновлення.
Крок 4) Натисніть кнопку оновлення, щоб отримати вказаний нижче результат
Крок 5) Порівняйте результати в Excel з результатами Google Chrome
Короткий зміст:
Селен можна класифікувати як інструмент автоматизації, який полегшує вишкрібання інформації з веб-сторінок HTML для здійснення веб-вишкрібання за допомогою google chrome.
Вишкрібання в Інтернеті слід проводити обережно.
Зазвичай викидання інформації суперечить умовам веб-сайту.
Коли вишкрібання здійснюється через селен, він пропонує підтримку декількох браузерів.
Іншими словами, скрепер може виконувати аналогічні завдання очищення через Firefox, Internet Explorer.