- ベストアンサー
PHPで外部のhtmlを読み込んでソースを加工
PHPで外部のWebページのhtmlソースを読み込むことは可能でしょうか? PHPで外部のWebページを表示するのではなく、そのWebページのhtmlソースを読み込んでhtmlをPHPで加工してから表示させたいのです。 その際に、javascriptが実行された結果(javascriptの実行がきちんと終了した状態)のhtmlソースを取得したいです。 何か情報をお持ちの方がいましたらお教え下さい。 よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
色々と条件が違ってて回答になってない気もしますが、こんな方法もあるよ。程度にお聞きください。 一つ確認したいのは、そのPHPを呼ぶのはブラウザからですよね? 一回、ブラウザに その目的のページを表示させてから、ブックマークレットでPHPに丸ごとPOSTで投げてやるという力技なら出来るかもしれません。 そのページのJavaScriptは表示が完了している時点で、完結しているものとしてですが、以下の様なブックマークレットでJavaScript実行後のものでもソースが取れます。 javascript:void(alert(document.body.innerHTML));
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
>javascriptが実行された結果(javascriptの実行がきちんと終了した状態)のhtmlソースを取得したい 理論的にはできる可能性は0ではないですが javascriptの解釈を厳密にするのはかなり厳しいと考えた方がよいでしょう。 よって結論としては「できない」ということで
お礼
ありがとうございます。 PHPはサーバーサイドスクリプトなので、そもそもクライアントで実行するjavascriptをサーバー側で取得できるわけないですもんね。 理論的にも無理そうな気がしてきました。 VBAだとできるのでVBAでやろうかと思い始めています。
- agunuz
- ベストアンサー率65% (288/438)
htmlソースを読み込むことは可能です(allow_url_fopenさえonになっていればfile_get_contentsでも読めます)。 ただし >javascriptが実行された結果(javascriptの実行がきちんと >終了した状態)のhtmlソースを取得 は無理です。そもそもJavaScriptは「実行して終わる」ものではありません。
お礼
ありがとうございます。 PHPではJavaScript実行後のhtml取得はできないのですね。 Firefoxの「Webページを保存」できるアドオンだと可能でした。 また、ExcelのVBAでもjavascript実行後のhtmlの取得も可能でした。 >そもそもJavaScriptは「実行して終わる」ものではありません。 ちょっと意味がわからないので具体的に教えていただければと思います。
補足
おお!そういう方法があったんですね。 それで大丈夫です。 今夜自宅に帰ったらやってみたいと思います。 また質問するかもしれませんがよろしくお願い致します。