USGA - GHIN Информация о 2-й странице - Получить информацию со 2-й веб-страницы после входа XML - PullRequest
0 голосов
/ 07 апреля 2020

Я получил отличную помощь от «asmitu», который помог мне войти на сайт USGA GHIN с помощью следующего кода. Однако моей настоящей проблемой было войти в систему и затем перейти на второй URL-адрес («https://www.ghin.com/golfer-lookup/following»), чтобы извлечь мои данные, которые хранятся на второй странице URL-адреса. Есть ли способ изменить код ниже, чтобы я попадал на 2-й странице после входа в систему?

Sub GHIN_Login()

Const Url = "https://api2.ghin.com/api/v1/public/login.json?"
Dim Http As New XMLHTTP60, ghinNum$, lastName$

ghinNum = ""            'put your ghinNum here
lastName = ""           'put your lastName here

With Http
  .Open "GET", Url & "ghinNumber=" & ghinNum & "&lastName=" & lastName & "&remember_me=false", False
  .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36"
  .setRequestHeader "Referer", "https://www.ghin.com/login"
  .send
End With

MsgBox Http.responseText
End Sub

1 Ответ

0 голосов
/ 08 апреля 2020

Содержимое этой целевой страницы генерируется динамически, поэтому вы не можете проанализировать обязательные поля с помощью xhr. Однако следующая попытка должна привести к тому, что вы получите ответ json, в котором есть обязательные поля.

Sub GetInformation()
    Const Url = "https://api2.ghin.com/api/v1/public/login.json?"
    Const Link = "https://api2.ghin.com/api/v1/followed_golfers/"
    Dim Http As New XMLHTTP60, ghinNum$, lastName$

    ghinNum = ""
    lastName = ""

    With Http
        .Open "GET", Url & "ghinNumber=" & ghinNum & "&lastName=" & lastName & "&remember_me=false", False
        .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36"
        .setRequestHeader "Referer", "https://www.ghin.com/login"
        .send
        .Open "GET", Link & ghinNum & ".json", False
        .send
    End With

    MsgBox Http.responseText
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...