PHPでJavascript実行「後」のhtml(jsで動的に作られてるサイト)を取得する方法を教えてください。


file_get_contentsやcurlだとJavascript実行「前」のhtmlになってしまうので、Javascript実行「後」のhtmlを取得する方法を知りたいです。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2014/12/28 09:45:28
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:jislotz No.3

回答回数19ベストアンサー獲得回数7

ポイント60pt

コメントからコピペ。

PhantomJSをインストールしてshell_exec()で……というのがまず頭に浮かんだ(試したことはない)。
http://stackoverflow.com/questions/24300717/running-phantomjs-from-php-with-exec
poletaewという人が、php-phantomjs and PhantomJS Runnerをかわりに使えと言っているのが気になる。

Yahoo!知恵袋に似た質問を発見
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14138678874
Selenium2を使うという方法があるようだ。

Yahoo Pipes!みたいなものでJavaScript実行後のHTMLを取得できるようなものは
ないのだろうか?

ついでにこの質問に出会った感想でも書いておこうかな。
ブラウザでJavaScriptを無効にする人は昔と比べるとだいぶ減ったから
JavaScriptに依存したWebページのアクセシビリティの問題は気にしない人が増えていて、
自分もそうなりつつあるのですが、
PHPとかでスクレイピングするというWebページの利用のされかたも想定しないとなーと
ちょっと考えさせられました。まる。

id:MrB

早々のコメントありがとうございました。
最近、javascript使ってるサイトが本当に多くなってきました。

2014/12/28 09:42:46

その他の回答2件)

id:ymlab No.1

回答回数508ベストアンサー獲得回数34

ポイント10pt

Webスクレイピングのことでしょうか。

Webスクレイピングの場合は、
http://www.buildinsider.net/web/bookphplib100/088
のサイトが参考になるかもしれません。

http://blog.asial.co.jp/1316

id:MrB

ありがとうございます。

2014/12/28 09:44:37
id:syamaoka No.2

回答回数21ベストアンサー獲得回数9

ポイント30pt

JavaScript を実行するには JavaScript の実行エンジンが必要です。私が知る限りでは PHP で実装された JavaScript エンジンは存在しないため、PHP で JavaScript の実行後の HTML を取得をすることはできません。
「PHPで」というのが「PHPだけで」なのかどうかはっきりしませんが、すでにコメント欄で触れられているように、php-phantomjs を使えばある程度は要求を満たせるかと思います。

id:MrB

回答ありがとうございます。
phpでjavascriptエンジンが出てくれるととても助かるのですが。

2014/12/28 09:43:29
id:jislotz No.3

回答回数19ベストアンサー獲得回数7ここでベストアンサー

ポイント60pt

コメントからコピペ。

PhantomJSをインストールしてshell_exec()で……というのがまず頭に浮かんだ(試したことはない)。
http://stackoverflow.com/questions/24300717/running-phantomjs-from-php-with-exec
poletaewという人が、php-phantomjs and PhantomJS Runnerをかわりに使えと言っているのが気になる。

Yahoo!知恵袋に似た質問を発見
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14138678874
Selenium2を使うという方法があるようだ。

Yahoo Pipes!みたいなものでJavaScript実行後のHTMLを取得できるようなものは
ないのだろうか?

ついでにこの質問に出会った感想でも書いておこうかな。
ブラウザでJavaScriptを無効にする人は昔と比べるとだいぶ減ったから
JavaScriptに依存したWebページのアクセシビリティの問題は気にしない人が増えていて、
自分もそうなりつつあるのですが、
PHPとかでスクレイピングするというWebページの利用のされかたも想定しないとなーと
ちょっと考えさせられました。まる。

id:MrB

早々のコメントありがとうございました。
最近、javascript使ってるサイトが本当に多くなってきました。

2014/12/28 09:42:46
  • id:jislotz
    PhantomJSをインストールしてshell_exec()で……というのがまず頭に浮かんだ(試したことはない)。
    http://stackoverflow.com/questions/24300717/running-phantomjs-from-php-with-exec
    poletaewという人が、php-phantomjs and PhantomJS Runnerをかわりに使えと言っているのが気になる。

    Yahoo!知恵袋に似た質問を発見
    http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14138678874
    Selenium2を使うという方法があるようだ。

    Yahoo Pipes!みたいなものでJavaScript実行後のHTMLを取得できるようなものは
    ないのだろうか?
  • id:MrB
    ありがとうございます。

    PhantomJS
    との組み合わせで何とかなりそうです。

    ポイントを差し上げたいので、良ければ年内くらいに回答欄に記載頂ければ幸いです。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません