我试图从this page读取html,然后解析它。问题是当我使用file_get_contents($url)
时,它会遗漏一些内容(我实际需要的内容)。例如,它不会在"每1盎司金额"之后得到数据。 (只是一个空白),以及" NUTRITION INFORMATION"中的所有数据(仅限数字,它确实得到标签);表。
这是脚本:
<?php
$url = "http://nutritiondata.self.com/facts/fruits-and-fruit-juices/1848/2";
$content = file_get_contents($url);
var_dump($content);
?>
答案 0 :(得分:2)
您请求的网址实际上并不包含您要查找的数据。您在浏览器中看到的数据将通过javascript放入页面。
以下是没有javascript的页面:
你需要找到javascript正在使用的数据源(完全可能是其他一些URL)并阅读它。
在这种情况下,数据 实际上在您正在请求的页面中(而不是您正在寻找它的位置),在3400行附近的一个大型JSON对象中。 foodNutrients = {
答案 1 :(得分:0)
看起来,该页面确实部分来自javascript。如果您访问该页面并让您显示HTML代码(不是通过DOM检查器或其他内容,而是页面的实际来源),您可以看到,您要搜索的部分不可用。
页面中包含了大量的javascript,你可能需要找出,哪些javascript填充页面以及从哪里得到它的数据。
“file_get_contents”对此没有帮助,因为javascript部分永远不会被执行。