如何在VBA中使用Http请求设置cookie?

时间:2019-06-25 19:16:30

标签: vba cookies web-scraping httprequest yahoo-finance

几天以来,Yahoo Finance不再部分支持Internet Explorer 11,所以我的webscraping宏不再起作用,因为在IE11中不再可见用于检索csv文件的适当链接。但是如果我使用其他浏览器检查html源代码,它们仍然存在。

我现在要做的是使用http请求来获取数据,但是一旦发送了请求,就会返回错误而不是csv文件。我想收到错误消息是因为我没有设置Cookie。我在这里找到了有关该主题的几篇文章,但是我不了解代码,无论如何我对Cookie的工作方式并不十分熟悉。我了解到cookie是在Http请求离开之前设置的,但我不确定该怎么做。

因此,我要确保的第一件事是是否可以通过一个http请求同时执行这两项操作,设置cookie并检索csv文件。

那是我写的代码:

Sub HttpRequest()

' Create Http Request

Dim xml As Object

Set xml = CreateObject("MSXML2.ServerXMLHTTP.6.0")

xml.Open "Get", "https://query1.finance.yahoo.com/v7/finance/download/DAI.DE?period1=1403474400& _
period2=1561240800&interval=1d&events=div&crumb=43WnmWAcccz", False

xml.send

' save as textfile

Dim fs, a
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set a = fs.CreateTextFile("E:\daimler.txt", True)
    a.WriteLine (xml.responseText)
    a.Close

End Sub

这是我得到的错误:

  

{       “财务”:{           “错误”:{               “ code”:“未经授权”,               “ description”:“无效的cookie”           }       }

如果有人可以帮助我解决这个问题,我将感到非常高兴。

问候, 马克

0 个答案:

没有答案