• ベストアンサー

PHPで外部のhtmlを読み込んでソースを加工

PHPで外部のWebページのhtmlソースを読み込むことは可能でしょうか? PHPで外部のWebページを表示するのではなく、そのWebページのhtmlソースを読み込んでhtmlをPHPで加工してから表示させたいのです。 その際に、javascriptが実行された結果(javascriptの実行がきちんと終了した状態)のhtmlソースを取得したいです。 何か情報をお持ちの方がいましたらお教え下さい。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.3

色々と条件が違ってて回答になってない気もしますが、こんな方法もあるよ。程度にお聞きください。 一つ確認したいのは、そのPHPを呼ぶのはブラウザからですよね? 一回、ブラウザに その目的のページを表示させてから、ブックマークレットでPHPに丸ごとPOSTで投げてやるという力技なら出来るかもしれません。 そのページのJavaScriptは表示が完了している時点で、完結しているものとしてですが、以下の様なブックマークレットでJavaScript実行後のものでもソースが取れます。 javascript:void(alert(document.body.innerHTML));

suffre
質問者

補足

おお!そういう方法があったんですね。 それで大丈夫です。 今夜自宅に帰ったらやってみたいと思います。 また質問するかもしれませんがよろしくお願い致します。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>javascriptが実行された結果(javascriptの実行がきちんと終了した状態)のhtmlソースを取得したい 理論的にはできる可能性は0ではないですが javascriptの解釈を厳密にするのはかなり厳しいと考えた方がよいでしょう。 よって結論としては「できない」ということで

suffre
質問者

お礼

ありがとうございます。 PHPはサーバーサイドスクリプトなので、そもそもクライアントで実行するjavascriptをサーバー側で取得できるわけないですもんね。 理論的にも無理そうな気がしてきました。 VBAだとできるのでVBAでやろうかと思い始めています。

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

htmlソースを読み込むことは可能です(allow_url_fopenさえonになっていればfile_get_contentsでも読めます)。 ただし >javascriptが実行された結果(javascriptの実行がきちんと >終了した状態)のhtmlソースを取得 は無理です。そもそもJavaScriptは「実行して終わる」ものではありません。

suffre
質問者

お礼

ありがとうございます。 PHPではJavaScript実行後のhtml取得はできないのですね。 Firefoxの「Webページを保存」できるアドオンだと可能でした。 また、ExcelのVBAでもjavascript実行後のhtmlの取得も可能でした。 >そもそもJavaScriptは「実行して終わる」ものではありません。 ちょっと意味がわからないので具体的に教えていただければと思います。

関連するQ&A

専門家に質問してみよう