Страницы: 1
RSS
Авторизация на сайте MSXML2.XMLHTTP, Авторизация и копирования кода страницы в переменную
 
Здравствуйте, коллеги
Прошу помочь с кодом.

Пытаюсь авторизоваться на сайте, чтобы получить информацию о товаре, которая без авторизации недоступна.
Ссылку-путь для авторизации я нашел, а вот как передать информацию о логине и пароле не знаю.

Код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Sub Parser()
  
    Set oHttp = CreateObject("MSXML2.XMLHTTP")
    Set objRegExp = CreateObject("VBScript.RegExp")
      
    URL_autorization = "https://www.sima-land.ru/api/v3/login-form/"
    entity = "******"
    Password = "******"
    g_recaptcha_response = " "
    PostData = "g_recaptcha_response: " & ", entity: " & entity & ", password: " & Password
 
    'Подсмотрел в Request Payload но не могу написать запрос, что бы авторизоваться
    '"{"g_recaptcha_response": "", "entity": "******", "password": "******"}"
 
    With oHttp
       .Open "post", URL_autorization, False
       .Send PostData
    End With
     
    'После авторизации переходим на страницу с товаром и копируем код страницы в переменную
     
    oHttp.Open "GET", URL, False
    oHttp.Send
    htmlcode = oHttp.ResponseText
    Set oHttp = Nothing
     
    'Ищем на странице информацию об остатке товара, если авторизация прошла, то будет количество,
    'если нет то будет надпись "На складе достаточно"
 
    ссылкаНачало = InStr(1, htmlcode, "На складе")
    ссылкаКонец = InStr(ссылкаНачало, htmlcode, "<")
    outstr = Mid(htmlcode, ссылкаНачало, ссылкаКонец - ссылкаНачало)
    Cells(1, 1) = outstr
  
End Sub
Изменено: lextoys - 16.04.2023 01:57:30
 
Чтобы работало, начало макроса должно быть таким:
(подставьте верные логин и пароль)

Код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    Set oHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
    Set objRegExp = CreateObject("VBScript.RegExp")
     
    entity = "ваш email"
    Password = "ваш пароль"
    
    PostData = "{""entity"":""" & entity & """,""password"":""" & Password & """}"
    With oHttp
       .Open "POST", authURL$, False
       .SetRequestHeader "Content-Type", "application/json"
       .Send PostData
       If Not .responseText Like "*rememberMe*" Then
            MsgBox .responseText, vbCritical, "Ошибка авторизации": Exit Sub
       End If
    End With
 
    MsgBox "Авторизация прошла успешно", vbInformation


Результат в ячейке: На складе 35590 наборов
Изменено: Игорь - 16.04.2023 00:53:37
 
Спасибо огромное, буду изучать эту тему дальше!
Страницы: 1
Читают тему
Наверх
Loading...