Добрый день!
Задача: считать данные со страницы в сети интернет.
По всей видимости запрос "проксируется" XmlHttpRequest.
С таким сталкиваюсь впервые поэтому не знаю как работать с такими запросами.
Есть у кого-либо идеи как осуществить чтение содержимого страницы?
Код |
---|
Sub load_data()
'реальная ссылка на страниц в браузере http://www.mami.ru/rasp/edu/mami.php#group=124433
'то есть сервер использует XhrIframeProxy
t = send_get("http://www.mami.ru/rasp/edu/ajax_mami.php?group=124433")
Debug.Print t
End Sub
Public Function send_get(url) As Variant
Dim oHttp As Object
Set oHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
' Set oHttp = CreateObject("MSXML2.XMLHTTP") ' под MSXML2 не происходит редирект и возвращается просто текст soryanchik =)
' If err.Number <> 0 Then
' Set oHttp = CreateObject("MSXML.XMLHTTPRequest")
' MsgBox "Error 0 has occured while creating a MSXML.XMLHTTPRequest object"
' End If
' On Error GoTo 0
' If oHttp Is Nothing Then
' MsgBox "For some reason I wasn't able to make a MSXML2.XMLHTTP object"
' Exit Function
' End If
oHttp.Open "GET", url, False
oHttp.setRequestHeader "X-Requested-With", "XMLHttpRequest" ' вот эта штуковина меня смущает
oHttp.setRequestHeader "Accept", "*/*"
oHttp.setRequestHeader "Referer", "http://www.mami.ru/rasp/edu/mami.php"
oHttp.setRequestHeader "Accept-Language", "ru-RU"
'oHttp.setRequestHeader "Accept-Encoding", "gzip, deflate"
oHttp.setRequestHeader "Accept-Encoding", "deflate" ' если делать без сжатия, то данные приходят в UTF-8, соотвественно кириллица возвращается знками ? прим.: <h2>124433 <span class='small'>?¦?µ??N?N? ????
oHttp.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
oHttp.setRequestHeader "Connection", "Keep-Alive"
oHttp.setRequestHeader "Host", "www.mami.ru"
oHttp.setRequestHeader "Cookie", "group=124433; _ym_uid=1454618017546438182; _ym_isad=0; PHPSESSID=ria6tkja3i4pjuad7fvrh98m76"
oHttp.send
send_get = oHttp.responseText
End Function |