【问题标题】:What parameters does this website need to use XMLHTTP?这个网站使用XMLHTTP需要什么参数?
【发布时间】:2021-07-19 12:49:05
【问题描述】:

我不知道需要从父页面(使用 VBA)向子页面发送哪些参数才能访问数据。我尝试过使用引用者(主页 URL)和 HTML 文本中的各种详细信息作为 POST,但 Excel 每次尝试使用 XMLHTTP 调用页面时都会挂起!

其实在主站点上,只需要从下拉列表中选择一个值,然后点击搜索按钮,无需填写其他字段,但子页面仍然没有响应相关ID值的POST .

<select name="Vort" size="1">
<option size="30" value="%"></option>
<option value="60467"</option>
<option value="60470"</option>
<option value="60468"</option>
...

有什么想法吗?我的 VBA 代码(Excel 挂起,无论使用哪个 POST 参数(S)):

Public Sub GETDATA()

    Dim html As New HTMLDocument, Htmldoc As New HTMLDocument, x As Long
        
    With CreateObject("MSXML2.ServerXMLHTTP.6.0")
        .Open "Post", URL, False
        .send   '?
        html.body.innerHTML = .responseText
    End With
        
    For x = 0 To 10
    Htmldoc = html.querySelectorAll("th").Item(x)
    ActiveSheet.Cells(x + 2, 2) = Htmldoc.innerText
    Next

End Sub

【问题讨论】:

    标签: javascript excel vba web-scraping xmlhttprequest


    【解决方案1】:

    要获得所需的响应,您需要发送适当的参数以及带有发布请求的内容类型标头。

    以下发布请求中使用的参数基于此selection

    Public Sub GetContent()
        Const link = "https://www.thueringen.de/olgneu/zvg/dosearch2_neu.asp"
        Dim oHtml As HTMLDocument, payload$
        
        Set oHtml = New HTMLDocument
        
        payload = "REASON=FULL_SEARCH&START_AT=1&Objekte_Ort=&VersteigerungsOrt=60467&Aktenzeichen=&ObjektWert_von=&ObjektWert_bis=&Termin_Ab=26.4.2021&Termin_Bis=&MAX_HIT=10"
        
        With CreateObject("MSXML2.XMLHTTP")
            .Open "POST", link, False
            .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36"
            .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
            .send (payload)
            oHtml.body.innerHTML = .responseText
        End With
        
        MsgBox oHtml.querySelector("tr.klein a[href]").href
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-26
      • 1970-01-01
      • 2013-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-22
      相关资源
      最近更新 更多