Оле Хенрик Скогстрём любезно опубликовал ответ в теме: «Как загрузить файл с помощью VBA (без Internet Explorer)».
Я использовал его код, так как хочу загрузить файл csv с www.ft.com и сохранить его во временном файле на моем диске c. Это бывает не так часто, поэтому я решил использовать простой Excel VBA. Я создал временную учетную запись тестовой подписки на www.FT.com, чтобы проиллюстрировать, что я хочу загрузить, имя пользователя - [email protected], пароль - fttestpassword.
После входа в систему ссылку «экспорт данных» можно увидеть в правом верхнем углу страницы:
При нажатии на эту ссылку передается следующий URL:
Следующий код возвращает файл, но в нем есть только "{" json ": {" triggerLogin ": true}}".
Sub downloadingpositions()
Dim myURL As String
myURL = "http://portfolio.ft.com/PortfolioAPI/ExportToCSV?containerID=3415c458-40bf-4e63-903a-37302a88bd83&type=Holdings&customName=suggested__0YourPortfolio&duration=15&startDate=undefined&endDate=undefined"
Dim WinHttpReq As Object
Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
WinHttpReq.Open "GET", myURL, False, "[email protected]", "fttestpasword"
WinHttpReq.Send
myURL = WinHttpReq.responseBody
If WinHttpReq.Status = 200 Then
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
oStream.Write WinHttpReq.responseBody
oStream.SaveToFile "c:\temp\testing.csv ", 2 ' 1 = no overwrite, 2 = overwrite
oStream.Close
End If
End Sub
Может ли кто-нибудь указать мне в правильном направлении, почему я не вхожу в систему / не получаю полный файл csv ??