【问题标题】:Powershell Invoke-WebRequest - Gather specified dataPowershell Invoke-WebRequest - 收集指定数据
【发布时间】:2020-03-03 13:42:16
【问题描述】:

我正在尝试从打印机的网页收集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
  • 在屏幕上。但我正在寻找的输出应该是“Total Pages Printed 23513

Total Pages in web-page

Total pages result in PS

HTML

【问题讨论】:

    标签: powershell network-printers


    【解决方案1】:

    Powershell 中的结果似乎与 HTML 页面上的结果顺序相同。它看起来有点像那些结果是一个数组,并且(如果我数对了),看起来你想要的字段是 23(数组从 0 开始)。

    试试下面...

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

    【讨论】:

    • 谢谢亚当!再次转换变量后,它返回我正在寻找的结果:) innerText --------- 23527pages
    • @Bah 太棒了。您是否介意通过单击旁边的复选标记将此答案标记为成功。这样,遇到此线程的其他人就知道这解决了您的问题。
    猜你喜欢
    • 2020-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 2012-07-26
    • 2021-10-19
    • 1970-01-01
    相关资源
    最近更新 更多