VBA парсинг и импорт в столбец excel
Формулировка задачи:
Всем привет.
Решил сделать парсинг сайта: https://2gis.ru/ekaterinburg/rubrics
На данный момент реализовал простой вариант: Записываю в Textbox название рубрики, он открывает сайт, подставляет значение и нажимает кнопку поиск. ТУт я бы хотел автоматизовать работу, чтоб он изначально предлогал мне в виде выпадающего текста выбрать список рубрик (Combobox1), а в поле подрубрик (Combobox2) подгружались подрубрики
Решил поступить так: Спарсить страницу, взять значение всех тегов стоящих между (не получается):
<a class="link _scheme_none rubricsList__listItemLinkTitle"> и </a>
Занести их в столбец (например начиная с B1), ну а потом при клике на Combobox1 выйдет список данных элементов (Это я знаю как реализовать)
Вопрос помогите реализовать:
взять значение всех тегов стоящих между (https://2gis.ru/ekaterinburg/rubrics):
<a class="link _scheme_none rubricsList__listItemLinkTitle"> и </a>
Занести их в столбец (например начиная с B1),
Решение задачи: «VBA парсинг и импорт в столбец excel»
textual
Листинг программы
Const mUrl As String = "https://2gis.ru" Const rUrl As String = "https://2gis.ru/ekaterinburg/rubrics" Const srUrl As String = "https://2gis.ru/ekaterinburg/subrubrics/" Sub uuu() Dim a() '------------ a = GetRubrics(rUrl) End Sub Function GetRubrics(ByVal url As String) As Variant Dim a() Dim i& Dim t_li, t_a '--------------------- Set sd = CreateObject("Scripting.Dictionary") With CreateObject("HtmlFile") .Body.innerHTML = GetHtml(url) For Each t_li In .GetElementsByTagName("li") If t_li.ClassName = "rubricsList__listItem" Then i = i + 1 ReDim Preserve a(1 To 3, 1 To i) a(1, i) = t_li.GetAttribute("data-name") a(2, i) = t_li.GetAttribute("data-id") a(3, i) = srUrl & a(2, i) End If Next End With GetRubrics = Application.Transpose(a) End Function Function GetHtml(ByVal url As String) As String With CreateObject("msxml2.xmlhttp") .Open "GET", url, False .send Do: DoEvents: Loop Until .ReadyState = 4 GetHtml = .responsetext End With End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д