日々精進

新しく学んだことを書き留めていきます

iframe内の要素をスクレイピングする方法

あるサイトをスクレイピングしようとしたら、どうしてもスクレイピングできなくておかしい・・・と思ってたら、取ってきたい要素がiframe内にあるからだった。
以下のようにしてiframe内の要素を取得することはできる。

$("#iFrame").contents().find("#someDiv").removeClass("hidden");

ただし、iframeが異なるドメインからHTMLを取得している場合はsame orign policyにより要素を取得できない。
これの解決策は以下でいける?試してないけど。just ideaです。
・プロキシを立てる
・iframeのsrcを親のHTMLと同じドメインに書き換えるJSを実行する
・プロキシでiframeからのリクエストURLを書き換える
・ブラウザからは同じドメインのように見えるのでスクレイピングできる


参考:jQuery/JavaScript: accessing contents of an iframe - Stack Overflow