вопрос вот в чем. Есть задача получить исходный код веб-страницы в текстовую переменную. Данный код прекрасно справляется в большинстве простых случаев:
Код
Sub sample()
sURL = "https://yandex.ru"
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
With oXMLHTTP
.Open "GET", sURL, False
.send
If .Status = 200 Then txt = .responseText
End With
MsgBox (txt)
End Sub
дальше начинаются сложности - в браузере страница отображается корректно, а при выполнении кода:
Код
Sub sample()
sURL = "http://www.manta.com/ic/mtq599v/ca/45th-street-limited-partnership"
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
With oXMLHTTP
.Open "GET", sURL, False
.send
If .Status = 200 Then txt = .responseText
End With
MsgBox (txt)
End Sub
ответ сервера содержит только информацию, что роботам данные не предоставляются.
Собственно сам вопрос - чем отличается запрос от браузера и от макроса, и, главное, как убедить сервер дать корректный ответ? Спасибо.
Вообще, надо заголовки запроса передавать Смотрите, какие браузер передает - то же и передавайте Чаще сайт смотрит на заголовок Host
В вашем же случае, все сложнее, - например, с моего IP вообще доступа нет (в браузере пишет, что доступ запрещен, а через прокси открывается) Так что сайт с заморочками, - там надо все заголовки передавать, а для последующих запросов - еще и Cookies (коих там много)