【问题标题】:Macro / VBA to fetch values from www.Eppraisal.com宏/VBA 从 www.Eppraisal.com 获取值
【发布时间】:2013-07-26 06:22:07
【问题描述】:

我需要使用 Excel 宏从 www.Eppraisa.com 获取一些值。

但我不知道 PropID 的值应该是多少。这就是宏适用于 URL1 但不适用于 URL2 的原因,因为我认为 URL2 的 propID 错误

Const URL1 As String = "http://www.eppraisal.com/home-values/property_lookup_eppraisal?a=1122%20E%20Loyola%20Dr&z=85282&propid=42382460"

Const URL2 As String = "http://www.eppraisal.com/home-values/property_lookup_eppraisal?a=19732%20E%20Reins%20Rd&z=85142&propid=31402642"

Sub xmlHttp()
    Dim xmlHttp As Object
    Set xmlHttp = CreateObject("MSXML2.XMLHTTP")

    ' This works
    xmlHttp.Open "GET", URL1, False

    ' But doesn't work for below url :(
    'xmlHttp.Open "GET", URL2, False

    xmlHttp.setRequestHeader "Content-Type", "text/xml"


    xmlHttp.send

    Dim ieDom As New HTMLDocument
    Dim html As Object
    Set html = CreateObject("htmlfile")
    html.body.innerHTML = xmlHttp.responseText
    Debug.Print html.body.innerHTML
    ieDom.body.innerHTML = xmlHttp.responseText

    For Each ieInp In ieDom.getElementsByTagName("p")
        If ieInp.className = "ColorAccent6 FontBold FontSizeM Margin0 Padding0" Then
            strEppraisalValue = ieInp.innerText
        ElseIf ieInp.className = "FontSizeA Margin0 DisplayNone HighLow" Then
            strEppraisalHighLow = ieInp.innerText
        End If
    Next End Sub

【问题讨论】:

  • 你怎么知道propid是否“正确”?
  • 也许这所房子根本没有报价。
  • 你是不是把 URL2 放到浏览器里了???它返回n/a,给我!
  • @TimWilliams 如果返回任何结果,那么 propid 是正确的。
  • @LS_dev: 是的,因为 URL2 的 propid 不正确

标签: vba excel web-scraping msxml xmlhttprequest


【解决方案1】:

使用 Mozilla Firefox 和 Firebug,您可以识别请求和响应。

以下步骤适用于您进行的任何搜索。

1 将以下 URL 复制到 Firefox 浏览器。

http://www.eppraisal.com/home-values/property/1122-e-loyola-dr-tempe-az-85282-42382460/

2 打开 FireBug 并查找以下请求。转到 Net Tab > XHR,如下图所示。

3 展开节点并转到“参数”选项卡。它显示了 GET 请求所需的所有输入参数。

.

4最后我们可以在响应选项卡中看到来自服务器的响应。

【讨论】:

  • 好的,非常感谢。有没有办法在不指定propid的情况下获取这些数据?
  • @Tejas 在后台,GET 请求调用了一个需要 3 个输入参数的存储过程。这又取决于 SP 中返回的逻辑。
  • 你能在这里看看我的问题吗:stackoverflow.com/users/285246/tejas?tab=questions 这真的需要你的专业知识。在此先感谢:)
猜你喜欢
  • 2013-07-23
  • 2018-11-08
  • 1970-01-01
  • 2013-04-29
  • 1970-01-01
  • 2014-12-01
  • 1970-01-01
  • 2013-01-09
相关资源
最近更新 更多