0

今日、PowerShellを使用してWebサイトから値を取得する際に問題が発生しました。PowerShell HTMLから要素を取得できません

これはwebsiteです。

ここで数字を取得しようとしています。ウェブページ自体が「ダウンロード済み」の値です(この数字は、ダウンロードが増えればそれを見ると少し大きいかもしれません)。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> 

この 私は試してみて、私は最後に「.innertext」を使用する必要があります知っている(上記の要素から番号「90」は、私だけかどうかを確認するには、Get-メンバを使用取得するために使用PowerShellのコードがあります任意のオブジェクトが見つかりました):

$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 

上記の私のコードのような名前、私は空のオブジェクトを取得します。 私は何の成功もなしにたくさんのことを試みました。

あなたの誰かが見て、私の問題を解決できるかどうかを確認することができれば本当に素晴らしいことでしょう。 ありがとうございました!どのように別のアプローチについて

答えて

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 
+0

どうもありがとう! それは動作します! ちょうど1つの質問 - 私のアプローチがうまくいかなかった理由を知っていますか?私はこのメソッドをオンラインで使用することについて多くの提案を見ましたが、それは私のためには機能しないようでした – TpTheGreat

+0

私は普通のHTML Webサイトでは、あなたのアプローチはうまくいくはずですが、この場合、サイトは ' 'javascript'は実行時にサイトをレンダリングします。 – Hackerman

関連する問題