人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

●質問者: MrB
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● ymlab
●10ポイント

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

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

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


MrBさんのコメント
ありがとうございます。

2 ● syamaoka
●30ポイント

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


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

3 ● ジント兄さん
●60ポイント ベストアンサー

コメントからコピペ。

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ページの利用のされかたも想定しないとなーと
ちょっと考えさせられました。まる。


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

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ