Получение определенных данных с веб-сайта через Excel

0

Я пытаюсь сделать что-то очень похожее на приведенный ниже пример: справочная проблема

С одним небольшим исключением, мне нужно отобрать только рейтинг и # обзоров для этого списка в 2 отдельных ячейки в Excel.

Как я могу сделать это таким образом, не вытаскивая данные всего сайта? Кажется, мне нужно вызвать конкретный тег html или использовать команду для этого, но я не знаю, что это такое.

Пожалуйста помоги!

  • 0
    какой URL интересующего вас сайта?
  • 0
    это был бы хороший пример: http://www.yelp.com/biz/if-boutique-new-york#
Теги:
excel-vba
excel
yelp

1 ответ

0
Лучший ответ

Этот код будет извлекать две части запрошенной вами информации и размещать их на активной табличке

Sub test()
    my_url = "http://www.yelp.com/biz/if-boutique-new-york"
    Set html_doc = CreateObject("htmlfile")
    Set xml_obj = CreateObject("MSXML2.XMLHTTP")

    xml_obj.Open "GET", my_url, False
    xml_obj.send
    html_doc.body.innerhtml = xml_obj.responseText
    Set xml_obj = Nothing

    Set Results = html_doc.body.getElementsByTagName("i")
    For Each itm In Results
        If InStr(1, itm.outerhtml, "star-img", vbTextCompare) > 0 Then
            numb_stars = itm.getAttribute("title")
            Exit For
        Else
        End If
    Next

    Set Results = html_doc.body.getElementsByTagName("span")
    For Each itm In Results
        If InStr(1, itm.outerhtml, "reviewCount", vbTextCompare) > 0 Then
            numb_rev = itm.innertext
            Exit For
        Else
        End If
    Next

    ActiveCell = numb_stars
    ActiveCell.Offset(1, 0) = numb_rev
End Sub
  • 0
    Это потрясающе! На самом деле это первый вопрос, который я задал на этом сайте, поэтому я рад видеть такие хорошие, быстрые ответы! Спасибо! Еще одна вещь, возможно ли динамически изменить URL, используя ссылку на ячейку в переменной my_url? И запустить скрипт, скажем, список из 10 разных URL (от a1: a10)?
  • 0
    Да, динамическое обновление URL-адреса не является проблемой. Метод, который вы предложили, должен работать нормально. Если мой ответ был полезным, пометьте его как "принятый", спасибо.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню