Я использую API там, где они есть, но обнаруживаю, что постоянно сталкиваюсь с тем, что я хотел бы получить с сайта, на котором его нет, поэтому я подумал, что попытаюсь научиться делать это с помощью invoke-webrequest.
Мне удалось вытащить основную информацию с нескольких старых сайтов, с которыми мы работали в прошлом, но я так и не понял, поэтому я хотел попробовать несколько сайтов, на которых есть страницы входадля дальнейшего моего понимания.Однако до сих пор мне не удалось решить ни один из них, поэтому я решил выбрать публичный сайт (Amazon) и посмотреть, смогу ли я получить помощь в понимании шагов.
Я собираюсь что-то сделатья думаю, что это будет просто, подключитесь к amazon.com.au, войдите в систему и возьмите список книг, которые я прочитал.
После того, что я сделал в прошлом, я сначала подключаюсь к URL и сохраняюэто в переменной сеанса.
За исключением этого времени я заполняю поля имени пользователя и пароля
Но хотя я получаю ответ 200 OK, я снова оказываюсь на экране входа в систему.
То, что у меня есть до сих пор.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$Url = "amazon.com.au/myk"
$cred = Get-Credential
$login = Invoke-WebRequest -Uri $Url -SessionVariable Amazon
$login.Forms[0].Fields.ap_email = $cred.UserName
$login.Forms[0].Fields.ap_password = $cred.GetNetworkCredential().Password
$Result = Invoke-WebRequest -Uri $Url -SessionVariable Amazon
$Result
Я действительно не понимаю этого, поэтому, может быть, я просто не понимаю, что делает веб-сайт, когда я ввожу парольи нажмите «Отправить».
Может ли кто-нибудь указать, что я делаю неправильно?Я думаю, может быть, мне нужно передать токен, но не уверен, потому что токен уже хранится в форме.Моя другая мысль заключалась в том, что есть поле действия (https://www.amazon.com.au/ap/signin), которое, возможно, потребуется использовать, но когда я помещаю его в браузер, оно переходит к странице поиска чего-либо, а не к реальной странице входа в систему.