-1

このページからhtmlを読み取って、後で解析しようとしています。問題は、使用するfile_get_contents($url)と、一部のコンテンツ(実際に必要なコンテンツ)が失われることです。たとえば、「1オンスあたりの量」(空白のみ)以降のデータは取得せず、「栄養情報」テーブルのすべてのデータ(数値のみ、ラベルを取得)を取得します。

スクリプトは次のとおりです。

<?php
$url = "http://nutritiondata.self.com/facts/fruits-and-fruit-juices/1848/2";
$content = file_get_contents($url);
var_dump($content);
?>
4

2 に答える 2

2

リクエストしている URL には、探しているデータが実際には含まれていません。ブラウザに表示されるデータは、javascript を介してページに挿入されています。

JavaScript を使用しない場合のページは次のようになります。

JavaScriptを無効にしたページ

JavaScript が使用しているデータソース (おそらくまったく別の URL) を見つけて、それを読む必要があります。

この場合、データ実際には要求しているページ (探している場所ではなく) の 3400 行付近の大きな JSON オブジェクトにあるように見えます。 foodNutrients = {

于 2012-05-16T17:49:19.210 に答える
0

ページは部分的に JavaScript からビルドされているようです。ページにアクセスして HTML コード (DOM インスペクタなどではなく、ページの実際のソース) を表示すると、探している部分が利用できないことがわかります。

ページには非常に多くの JavaScript が含まれており、おそらくどの JavaScript がページを埋め、どこからデータを取得するのかを調べる必要があります。

「file_get_contents」は、javascript 部分が実行されないため、これには役立ちません。

于 2012-05-16T17:49:51.860 に答える