PowerShellを使用してframe要素で構成されたページをスクレイピングしたいのですが、どうしても内容の取得ができずに困っております。
環境はwin7,PSバージョン2.0,IE11となります。
スタックオーバーフローで同じ質問をしているページ
HtmlDocument クラス
HtmlWindow クラス
↑この辺のページを参考に考えてみましたがどうにも上手くいきませんでした。
考えた、というよりは思いつくまま試した結果良く解らなかったという感じです。
実は最近、某知恵袋で似たような質問をした経緯があります。
PowerShellを始めたばかりで苦戦しています。知恵をお借りしたいです。
下記、frame要素のサンプルページを例に記述したコードになります。
http://www.tagindex.com/html_tag/frame/example_f01.html
#サンプルページを開いて可視化 $ie = New-Object -ComObject InternetExplorer.Application $ie.Navigate("http://www.tagindex.com/html_tag/frame/example_f01.html") $ie.Visible = $true #読み込み完了まで待機 While($ie.busy -eq $true -or ($ie.ReadyState -ne "4") ){ Start-Sleep -s 1 } #思いつくまま試してみた失敗作とエラー内容 <# foreach($elements In $ie.document.frames.item[0].document.body){ echo $elements.InnerHtml } (null 配列にインデックスを付けることはできません。) foreach($elements In $ie.document.frames[0].document.body){ echo $elements.InnerHtml } (型 System.__ComObject のオブジェクトにインデックスを付けることはできません。) foreach($elements In $ie.document.frames.document.body){ echo $elements.InnerHtml } (親要素だけが返ってくる) foreach($elements In $ie.document.frames.body){ echo $elements.InnerHtml } (親要素だけが返ってくる) foreach($elements In $ie.document.window.frames...){ echo $elements.InnerHtml } (何も返ってこない) foreach($elements In $ie.document.window.WindowFrameElement...){ echo $elements.InnerHtml } (何も返ってこない) #>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。