-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 回答