PowerShell 无法从 HTML 获取元素
PowerShell Cannot get element from HTML
我今天在尝试使用 PowerShell 从网站获取值时遇到问题。
这是website。
我这里是想得到数字“90”,在网页本身就是"Downloaded"的值(如果下载多了看这个数字可能会大一点) :Screenshot of the element i am trying to return
<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
当像我上面的代码一样通过标签名称调用元素时,我得到一个空对象。
我尝试了很多东西都没有成功。
如果你们中的任何人能看一看并检查您是否能够解决我的问题,那将是非常好的。
非常感谢!!!
另一种方法如何:
$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
我今天在尝试使用 PowerShell 从网站获取值时遇到问题。
这是website。
我这里是想得到数字“90”,在网页本身就是"Downloaded"的值(如果下载多了看这个数字可能会大一点) :Screenshot of the element i am trying to return
<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
当像我上面的代码一样通过标签名称调用元素时,我得到一个空对象。 我尝试了很多东西都没有成功。
如果你们中的任何人能看一看并检查您是否能够解决我的问题,那将是非常好的。 非常感谢!!!
另一种方法如何:
$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