プロが教える店舗&オフィスのセキュリティ対策術

お世話になります。
早速ですがご質問させて頂きます。

対象サイトのhtmlを取得し解析・一部情報を抽出する機能を作っています。
以下の方法で取得を行ったのですが、抽出したい情報が入っていなく(隠蔽されている??)困っています。
firebugで対象サイトのhtmlを確認すると抽出したい情報はきちんと表示されていますが、
ブラウザでソースを表示すると隠蔽?されています。

◆表示比較
・firebug
<p class="●●">(抽出したい情報)</p>

・ブラウザでソース表示する
<td id="●●">-</td>

▼プログラム
$html = file_get_contents ("http://対象サイト");
$domDocument = new DOMDocument ();
$domDocument->loadHTML($html);
$xmlString = $domDocument->saveXML ();
$xmlObject = simplexml_load_string($xmlString);

そもそも抽出したい情報の箇所は動的に生成されているものでfile_get~で読みにいっているものは動的に出力される前のものを読み込んでいるのが原因でこのような結果になっているのでしょうか?

上記の方法以外でもうまいやり方があればぜひご教授頂きたいです!
宜しくお願い致します!

環境:
MacOSX 10.6.8
PHP 5.1.2
Firebug 1.11.4
Firefox 22.0

A 回答 (2件)

>そもそも抽出したい情報の箇所は動的に生成されているものでfile_get~で読みにいっているものは動的に出力される前のものを読み込んでいるのが原因でこのような結果になっているのでしょうか?



の部分が、Javascriptなどによって後から動的に生成されているということであれば、

>そもそも抽出したい情報の箇所は動的に生成されているものでfile_get~で読みにいっているものは動的に出力される前のものを読み込んでいるのが原因でこのような結果になっているのでしょうか?

質問者様のこちらの認識で間違いないかと思います。

Javascriptなどのレンダリングが完了した後のHTMLを取得するということになると、
PHPを用いてというのはおそらく難しく、
VBなどの言語を使って、ブラウザの動作(Javascriptの実行完了までの動作)を実行した後、
ソースコードを取得するようなアプリケーションを作成する必要があるのかなと思います。
(VB等にはあまり詳しくなく具体例が出せないのが心苦しいのですが・・・)

以上です。ご参考になれば幸いです!
    • good
    • 0
この回答へのお礼

ご回答有り難うございます!

なるほど。。
レンダリング後のHTMLを読み込めればいいんですね。

少し糸口が掴めたような気がします!

有り難うございます!

お礼日時:2013/07/12 18:21

firebugではhtmlを見られるがブラウザでソースを表示すると見えないのは、HTML上には何も書かれておらずブラウザでJavaScriptを実行して書き足しているという事です。



従って、その部分の情報を得るにはJavaScriptを実行する必要ああります。
    • good
    • 0
この回答へのお礼

ご回答有り難うございます!

javascript部分で出力しているんですね。
やはりphpでは難しそうですね。。

色々試してみようと思います!

お礼日時:2013/07/12 18:23

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