Веб-очистка содержимого за страницей входа

#powershell #web-scraping

Вопрос:

Моя цель здесь-очистить данные с веб-страницы, на которую я должен войти с помощью PowerShell. Чтобы быть прозрачным, это веб-сайт типа недвижимости, и я не знаю, кто еще пытается очистить эти данные, поэтому я действительно не хочу разглашать полный URL-адрес.

У меня есть рабочий код, который, как я полагаю, заходит на веб-страницу, но при попытке посетить какие-либо URL-адреса, кроме этого, каким-то образом говорится, что я не вошел в систему и не возвращает никаких данных.

Этот код является результатом просмотра инструментов разработчика браузера Opera при входе в систему и при переходе к нужному списку содержимого. Я могу щелкнуть правой кнопкой мыши и скопировать как PowerShell запрос GET, но даже отправка его обратно не увенчалась успехом.

$DashboardGet возвращается свойство ссылки с URL-адресом входа, которое сообщает мне данные, которые я отправляю (в заголовке? Или в переменной сеанса) неправильно сохраняет сеанс в системе?

Но я могу видеть и проверять $PageLogin , что он вошел на сайт, я просто не могу понять ничего, кроме этого.

 $base_URL = 'https://site.webpage.com/'

$site = Invoke-WebRequest $base_URL

$user = Import-Clixml C:Appswebsite_login.xml

$site.Forms.fields.email = $user.UserName

$site.Forms.fields.password = $user.Password

$LoginPayload = $site.Forms.fields | ConvertTo-Json

$loginSite = $site.Forms[0].Action

$PageLogin = Invoke-WebRequest $loginSite -UseBasicParsing -Method POST -Body $LoginPayload -SessionVariable ScapeWebPage

$ScapeWebPage.Cookies.Add((New-Object System.Net.Cookie("XSRF-TOKEN", "lots of boring characters here", "/", "site.webpage.com")))
$ScapeWebPage.Cookies.Add((New-Object System.Net.Cookie("key01", "more boring characters", "/", "site.webpage.com")))

$DashboardGet = Invoke-WebRequest -UseBasicParsing -Uri "https://site.webpage.com/app/dashboard" `
-WebSession $ScapeWebPage -Method GET

$DashboardGet
 

Комментарии:

1. Ваша $ScapeWebPage переменная не определена для вашего первого вызова Invoke-WebRequest . Возможно, при последующих вызовах просто отсутствует источник ссылки или источник домена.

2. @leeharvey1 к сожалению, сайт упрям, и это не имело никакого значения. Я перешел -SessionVariable к первому Invoke-WebRequest , но по-прежнему вижу только ссылку «Забыли пройти». Я даже попытался установить PowerShell core 7.1 для PreserveAuthorizationOnRedirect параметра, но это не помогло, скорее я не могу войти в систему сейчас.