何ゴト?

日々の何事かを書いていきます。

Adobe AIR を使って、httpsから始まるURLのソースを取得する

PHP の get_file_contents を使用して、サイトのソースを取得する時に、 httpsから始まるURLなどで、時々403エラーが返ってくることがあります。 なんとかプログラムで取得することができないかと色々調べました。

Adobe AIRを使えば、取得できることがわかりました。

private function main():void
{   
    var url:String = "https://www.〜〜〜"; // 読み込みたいサイトのURL
    var urlReq:URLRequest = new URLRequest();
    urlReq.url = url;
    
    var htmlLoader:HTMLLoader = new HTMLLoader;
    htmlLoader.addEventListener(Event.COMPLETE,onCOMPLETE);              
    htmlLoader.load(urlReq);
    
    function onCOMPLETE(event:Event):void
    {
        var window:Object = htmlLoader.window;
        var document:Object = window.document;
        
        var textarea:Object = document.createElement("textarea");
        textarea.id = "textarea_original_id";
        document.body.appendChild(textarea);
        
        var script:Object = document.createElement("script");
        script.innerHTML = 'document.getElementById("textarea_original_id").value = document.getElementsByTagName("html")[0].innerHTML;';
        
        document.body.appendChild(script);
        
        var src:String = document.getElementById("textarea_original_id").value;
        trace(src);
    }
}

流れとしては、読み込んだサイトに、TextAreaエレメントを追加して、そこにソースコードを入れて、actionscript 側でソースを取得するというものです。
もっと簡単な方法はないだろうか。

関連記事

Mac版 FlashBuilder 4.7 で AIR 書き出しができないとき用メモ – LLC DigiFie