PowerShell无法从HTML获取元素

时间:2017-05-31 16:50:39

标签: import getelementbyid getelementsbytagname getelementsbyclassname

我在尝试使用PowerShell从网站获取值时遇到了一个问题。

这是website

我试图在这里得到数字“90”,在网页本身就是“已下载”的值(如果有更多下载,当你查看它时,这个数字可能会大一点):{{3 }}

<span title="Downloads" class="mod-card-info-tag" data-reactid=".0.0.0.2.0.0.2.2">
<div class="mod-card-info-tag-label" data-reactid=".0.0.0.2.0.0.2.2.0">90</div>

这是我用来尝试从上面的元素中获取数字“90”的PowerShell代码(我知道我最后应该使用“.innertext”,我只是使用get-member来查看是否有任何对象实测值):

$URI = "https://mods.factorio.com/mods/TpTheGreat/TpTheGreats%20Large%20Roboport%20Logistics%20Area"
$HTML = Invoke-WebRequest  -Uri $URI

($HTML.ParsedHtml.getElementsByTagName("div") | Where{ $_.className -eq ‘mod-card-info-tag-label’ }) | Get-Member

在上面的代码中按标签名称调用元素时,我得到一个空对象。 我尝试了很多事情但没有成功。

如果你们中的任何人都可以看看并检查你是否能够解决我的问题,那将是非常好的。 非常感谢!!!

1 个答案:

答案 0 :(得分:0)

另一种方法怎么样:

 $URI = "https://mods.factorio.com/mods/TpTheGreat/TpTheGreats%20Large%20Roboport%20Logistics%20Area"
 $HTML = Invoke-WebRequest  -Uri $URI
 $arr = $HTML.AllElements.Item(9).innerHTML  -split ' = '

 $myObj = $arr[1].replace("`n"," ") 

 $myObj = $myObj.replace(";","") | ConvertFrom-Json

 $myObj.mod.mod.downloads_count