プロが教えるわが家の防犯対策術!

PHPで外部のWebページのhtmlソースを読み込むことは可能でしょうか?
PHPで外部のWebページを表示するのではなく、そのWebページのhtmlソースを読み込んでhtmlをPHPで加工してから表示させたいのです。

その際に、javascriptが実行された結果(javascriptの実行がきちんと終了した状態)のhtmlソースを取得したいです。

何か情報をお持ちの方がいましたらお教え下さい。
よろしくお願い致します。

A 回答 (3件)

色々と条件が違ってて回答になってない気もしますが、こんな方法もあるよ。

程度にお聞きください。

一つ確認したいのは、そのPHPを呼ぶのはブラウザからですよね?

一回、ブラウザに その目的のページを表示させてから、ブックマークレットでPHPに丸ごとPOSTで投げてやるという力技なら出来るかもしれません。

そのページのJavaScriptは表示が完了している時点で、完結しているものとしてですが、以下の様なブックマークレットでJavaScript実行後のものでもソースが取れます。

javascript:void(alert(document.body.innerHTML));

この回答への補足

おお!そういう方法があったんですね。
それで大丈夫です。

今夜自宅に帰ったらやってみたいと思います。
また質問するかもしれませんがよろしくお願い致します。

補足日時:2013/03/27 10:02
    • good
    • 0

>javascriptが実行された結果(javascriptの実行がきちんと終了した状態)のhtmlソースを取得したい



理論的にはできる可能性は0ではないですが
javascriptの解釈を厳密にするのはかなり厳しいと考えた方がよいでしょう。
よって結論としては「できない」ということで
    • good
    • 0
この回答へのお礼

ありがとうございます。
PHPはサーバーサイドスクリプトなので、そもそもクライアントで実行するjavascriptをサーバー側で取得できるわけないですもんね。

理論的にも無理そうな気がしてきました。

VBAだとできるのでVBAでやろうかと思い始めています。

お礼日時:2013/03/27 00:15

htmlソースを読み込むことは可能です(allow_url_fopenさえonになっていればfile_get_contentsでも読めます)。



ただし

>javascriptが実行された結果(javascriptの実行がきちんと
>終了した状態)のhtmlソースを取得

は無理です。そもそもJavaScriptは「実行して終わる」ものではありません。
    • good
    • 0
この回答へのお礼

ありがとうございます。
PHPではJavaScript実行後のhtml取得はできないのですね。

Firefoxの「Webページを保存」できるアドオンだと可能でした。
また、ExcelのVBAでもjavascript実行後のhtmlの取得も可能でした。

>そもそもJavaScriptは「実行して終わる」ものではありません。

ちょっと意味がわからないので具体的に教えていただければと思います。

お礼日時:2013/03/27 00:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!