PhP curl simple_dom_document 请求从 snowbird.com 获取雪数据
PhP curl simple_dom_document request to get snow data from snowbird.com
我正在使用 php、curl 和 simple_dom_document 从 snowbird.com 获取雪数据。问题是我似乎无法真正找到我需要的数据。我能够找到父 div 及其名称,但找不到实际的雪信息 div。这是我的代码。在我的代码下方,输出的一小部分不正确。
<?php
require('simple_html_dom.php');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.snowbird.com/mountain-report/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
$content = curl_exec($ch);
curl_close($ch);
$html = new simple_html_dom();
$html->load($content);
$ret = $html->find('.horizSnowChartText');
$ret = serialize($ret);
$ret3 = new simple_html_dom();
$ret3->load($ret);
$es = $ret3->find('text');
$ret2 = $ret3->find('.total-inches');
print_r($ret2);
//print_r($es);
?>
这是输出的图片。您可以看到它跳过了实际的雪数据并直接转到英寸标记“。
请注意,您获得的 html 标记具有多个 .total-inches
实例(具有此 class 的多个节点)。如果要显式获取一个,可以直接使用->find()
.
的第二个参数指向它
示例:
$ret2 = $html->find('.total-inches', 3);
// ^
如果你想把它们全部检查出来,一个简单的foreach
就足够了:
foreach($html->find('.current-conditions .snowfall-total .total-inches') as $in) {
echo $in , "\n";
}
我正在使用 php、curl 和 simple_dom_document 从 snowbird.com 获取雪数据。问题是我似乎无法真正找到我需要的数据。我能够找到父 div 及其名称,但找不到实际的雪信息 div。这是我的代码。在我的代码下方,输出的一小部分不正确。
<?php
require('simple_html_dom.php');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.snowbird.com/mountain-report/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
$content = curl_exec($ch);
curl_close($ch);
$html = new simple_html_dom();
$html->load($content);
$ret = $html->find('.horizSnowChartText');
$ret = serialize($ret);
$ret3 = new simple_html_dom();
$ret3->load($ret);
$es = $ret3->find('text');
$ret2 = $ret3->find('.total-inches');
print_r($ret2);
//print_r($es);
?>
这是输出的图片。您可以看到它跳过了实际的雪数据并直接转到英寸标记“。
请注意,您获得的 html 标记具有多个 .total-inches
实例(具有此 class 的多个节点)。如果要显式获取一个,可以直接使用->find()
.
示例:
$ret2 = $html->find('.total-inches', 3);
// ^
如果你想把它们全部检查出来,一个简单的foreach
就足够了:
foreach($html->find('.current-conditions .snowfall-total .total-inches') as $in) {
echo $in , "\n";
}