VBA Excel. Парсинг сайтов, html-страниц и файлов

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

    Парсинг html-страниц (msxml2.xmlhttp)

    Пользовательская функция GetHTML1 (VBA Excel) для извлечения (парсинга) текстового содержимого из html-страницы сайта по ее URL-адресу с помощью объекта «msxml2.xmlhttp»:

    Парсинг сайтов (WinHttp.WinHttpRequest.5.1)

    Пользовательская функция GetHTML2 (VBA Excel) для извлечения (парсинга) текстового содержимого из html-страницы сайта по ее URL-адресу с помощью объекта «WinHttp.WinHttpRequest.5.1»:

    Парсинг файлов (ADODB.Stream)

    Пользовательская функция GetText (VBA Excel) для извлечения (парсинга) текстового содержимого из файла (.txt, .csv, .mhtml), сохраненного на диск компьютера, по его полному имени (адресу) с помощью объекта «ADODB.Stream»:

    Примеры записи текста в переменную

    Общая формула записи текста, извлеченного с помощью пользовательских функций VBA Excel, в переменную:

    Конкретные примеры:

    Извлечение данных из html

    В понятие «парсинг», кроме извлечения текстового содержимого сайтов, html-страниц или файлов, входит поиск и извлечение конкретных данных из всего полученного текстового содержимого.

    Пример извлечения email-адресов из текста, присвоенного переменной, смотрите в последнем параграфе статьи: Регулярные выражения (объекты, свойства, методы).

    Парсинг содержимого тегов

    Извлечение содержимого тегов с помощью метода getElementsByTagName объекта HTMLFile:

    С помощью этого кода извлекается текст, расположенный между открывающим и закрывающим тегами. В примере — это текст 6-го абзаца (p) между 5-й (нумерация с 0) парой отрывающего <p> и закрывающего </p> тегов.

    Примеры тегов, используемых в html: "p", "title", "h1", "h2", "table", "div", "script".

    Пример извлечения содержимого тега "title":

    Парсинг содержимого Id

    Извлечение текстового содержимого html-элементов, имеющих уникальный идентификатор — Id, с помощью метода getElementById объекта HTMLFile:

    Для реализации представленных здесь примеров могут понадобиться дополнительные библиотеки. В настоящее время у меня подключены следующие (к данной теме могут относиться последние шесть):

    • Visual Basic For Applications
    • Microsoft Excel 16.0 Object Library
    • OLE Automation
    • Microsoft Office 16.0 Object Library
    • Microsoft Forms 2.0 Object Library
    • Ref Edit Control
    • Microsoft Scripting Runtime
    • Microsoft Word 16.0 Object Library
    • Microsoft Windows Common Controls 6.0 (SP6)
    • Microsoft ActiveX Data Objects 6.1 Library
    • Microsoft ActiveX Data Objects Recordset 6.0 Library
    • Microsoft HTML Object Library
    • Microsoft Internet Controls
    • Microsoft Shell Controls And Automation
    • Microsoft XML, v6.0

    С этим набором библиотек все примеры работают. Тестирование проводилось в VBA Excel 2016.


    Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

    Добавить комментарий

    Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора.