AJAX経由で読み込まれたサイトの他の動的情報と比較するために、ウェブサイトから画像をダウンロードしたいと考えています。サイトはAJAXを使用して他の情報をロードするので、ajax情報がロードされないか、少なくとも私はそれをトリガーする方法を理解できないため、invoke-webrequestは使用できません。そのため、私はApplication.internetexplorerのcomオブジェクトを使用することに決めました。IEのオブジェクトから画像を保存またはコピーする
これは、JavaScriptをトラバースしてトリガーするために機能しますが、IEウィンドウに表示されている画像を保存する方法を理解できません。 srcパス経由でイメージをダウンロードしようとしましたが、前述のように、イメージはすべてのリクエストで元の状態から少し変化します。 $ ie.document.imagesや他のパスから見ることができる「保存」メソッドはありません。私は、最後の溝の努力としてinnerHTMLやouterHTMLなどとして.pngにアウトファイルしようとしましたが、それもすべて失敗します。
私はcomオブジェクトを表示させるときに画像を見ることができます。すでに自分のコンピュータに表示されている画像を取得するには、何らかの方法が必要です。誰も私がこれを達成する方法を知っていますか?
ない、それは役立ちますが、ここでこれまでのところ、私のコードであることを確認してください:あなたはそこに道の最もているよう
$url = "https://somesite.com"
$ie = New-Object -com internetexplorer.application
$ie.navigate($url)
while($ie.ReadyState -ne 4) {start-sleep -seconds 1}
$ie.visible = $true
$doc = $ie.Document
$firstImage= $doc.IHTMLDocument3_getElementById('images01')
$secondImage = $doc.IHTMLDocument3_getElementById('images02')
$thirdImage = $doc.IHTMLDocument3_getElementById('images03')
#how can I save firstImage as .png?
ありがとうございました。残念ながら、Invoke-WebRequestなどの別のWebリクエストを使用することはできません。そのため、IE comオブジェクトからの画像とInvoke-WebRequestからの画像は異なっています。 – user2093601
IHTMLControlRangeを使用しようとしていますが、認識できません。私は範囲を追加しようとしましたが、$ firstImageを渡してexecCommandを実行しましたが、何もコピーされませんでした。 – user2093601
私はあまりにも遭遇したような音。その推測ですが、私はそれがDOMオブジェクトはアウトプロセスのためかもしれないと思う。おそらく、PowerShellでDOMを操作する代わりに、制御範囲を作成してexecCommandを実行してブラウザに注入するためのJavaScriptを少し書くことができます。また、 "copy"コマンドは、クリップボードにイメージを置くことによってGUIを避けるかもしれないことに注意してください。 –