我正在尝试编写一个PowerShell脚本,该脚本从网站获取HTML页面并从中提取一些信息。
我的代码如下:
$html = (invoke-webrequest -uri $address).parsedHTML;
$bodyHTML = $html.body.getElementsByClassName("news-item")[0].innerText;
该脚本可以正常访问网站。该网站的重要部分如下所示:
...
<DIV class=news-item>
Important Information
...
问题: 我总是收到错误消息:“无法索引为空数组”。 getElementsByClassName()-函数不返回任何内容。
如果我列出所有div并显示类名称:
$html.body.getElementsByTagName("div") | select className
它列出了我正在寻找的所有类名称,包括“ news-item”。
有人知道可能是什么问题吗?
答案 0 :(得分:0)
问题似乎是所使用的PowerShell版本。在计算机上运行的PowerShell版本为4.11。
在另一台计算机上使用PowerShell 5.1时,代码可以正常工作。
作为一种变通方法,由于无法更新PowerShell的合规性,并且我只在查找div-elements,因此我使用了以下代码:
$bodyHTML = ($html.body.getElementsByTagName("div") | where { $_.className -eq "news-item" })[0].innerText;