【问题标题】:PowerShell HTML method getElementsByClassName returns nullPowerShell HTML 方法 getElementsByClassName 返回 null
【发布时间】:2018-09-20 14:47:13
【问题描述】:

我正在尝试编写一个 PowerShell 脚本,该脚本从网站获取 HTML 页面并从中提取一些信息。

我的代码如下所示:

$html = (invoke-webrequest -uri $address).parsedHTML;
$bodyHTML = $html.body.getElementsByClassName("news-item")[0].innerText;

脚本可以很好地获取网站。该网站的重要部分如下所示:

...
<DIV class=news-item>
Important Information
...

问题: 我总是收到一条错误消息:“无法索引到空数组”。 getElementsByClassName()-Function 不返回任何内容。

如果我列出所有 div 并显示类名:

$html.body.getElementsByTagName("div") | select className

它列出了所有的类名,包括我正在寻找的“news-item”。

有人知道问题可能是什么吗?

【问题讨论】:

    标签: html powershell dom


    【解决方案1】:

    问题似乎是使用的 PowerShell 版本。机器上运行的 PowerShell 版本是 4.11。

    在另一台机器上使用 PowerShell 5.1,代码运行良好。

    作为一种解决方法,因为 PowerShell 无法更新,而我只是在寻找 div 元素,所以我使用了以下代码:

    $bodyHTML = ($html.body.getElementsByTagName("div") | where { $_.className -eq "news-item" })[0].innerText;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-02
      • 1970-01-01
      • 2013-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多