通过excel从网站检索特定数据

时间:2014-04-21 22:01:51

标签: html excel vba excel-vba yelp

我正在尝试做一些与下面现有示例非常相似的事情: reference problem

除了一个小例外,我需要将此商家信息的评级#评论分别添加到Excel中的2个单独的单元格中。

如何在不拉动整个网站数据的情况下执行此操作?我似乎需要调用特定的html标签或使用命令来执行此操作,但我不知道它是什么。

请帮助!

1 个答案:

答案 0 :(得分: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