Powershell Invoke-WebRequest - сбор указанных данных - PullRequest
0 голосов
/ 03 марта 2020

Я пытаюсь собрать Total Pages Printed с веб-страницы принтера. Сценарий может ...

  1. Загрузить страницу входа в систему.
  2. Перейти на подстраницу обслуживания
  3. Выбрать столбец с нужными данными

Однако я не знаю, как настроить скрипт так, чтобы он захватывал только нужные мне числа.

$R=Invoke-WebRequest http://1.2.3.4/status.html -SessionVariable session1

#B553 - name w Html
$R.Forms[0].Fields["B553"]="login"
$R.Forms[0].Fields["password"]="password"

$Invoke1=Invoke-WebRequest -Uri ("http://1.2.3.4/status.html" + $R.Forms[0].Action) -WebSession $session1 -Method POST -Body $R.Forms[0].Fields

Start-Sleep -s 5

$Invoke2=Invoke-WebRequest 'http://1.2.3.4/Maintance-sub-page' -WebSession $session1

$Invoke2.AllElements | where tagname -EQ "dd" | Select innerText

Результат следующий:

$Invoke2.AllElements | where tagname -EQ "dd" | Select innerText
  • на экране. Но вывод, который я ищу, должен выглядеть так: " Всего напечатано страниц 23513 "

Всего страниц на веб-странице

Итого страниц в PS

HTML

1 Ответ

0 голосов
/ 03 марта 2020

Похоже, что результаты в Powershell находятся в том же порядке, что и на странице HTML. Похоже, что эти результаты являются массивом, и (если я считал правильно), похоже, что поле, которое вы хотите, равно 23 (массив начинается с 0).

Дайте следующую попытку ...

$($Invoke2.AllElements | where tagname -EQ "dd" | Select innerText)[23]
...