【发布时间】:2026-01-31 18:20:05
【问题描述】:
我正在尝试抓取此网页...
http://prontosoccorso.usl4.toscana.it/attesa/home.asp
使用 PHP 和 XPath 获取红色、黄色、绿色和白色圆圈下的数值。
(注意:如果您尝试浏览该页面,您可能会在该页面中看到不同的值......没关系..,它会发生动态变化......)
我正在尝试使用这个 PHP 代码示例来打印值...
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
$url = 'http://prontosoccorso.usl4.toscana.it/attesa/home.asp';
$xpath_for_parsing = '[@id="prontosoccorso"]/tbody/tr[2]/td[2]';
//#Set CURL parameters: pay attention to the PROXY config !!!!
$ch = curl_init();
curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_PROXY, '');
$data = curl_exec($ch);
curl_close($ch);
$dom = new DOMDocument();
@$dom->loadHTML($data);
$xpath = new DOMXPath($dom);
$colorWaitingNumber = $xpath->query($xpath_for_parsing);
$theValue = 'N.D.';
foreach( $colorWaitingNumber as $node )
{
$theValue = $node->nodeValue;
}
print $theValue;
?>
代码运行良好,但结果总是 0 !!
我注意到如果你使用
$xpath_for_parsing = '[@id="prontosoccorso"]';
结果是
Situazione aggiornata al giorno 30/12/2017 alle ore 14:09 Rosso Giallo Verde Azzurro Bianco Pazienti in attesa (totale 0) 0 0 0 0 0 Pazienti in visita (totale 0) 0 0 0 0 0 Pazienti trattati nelle ultime 矿石 0 0 0 0 0
所以我的值的结果 0 是一致的(如果您从命令行尝试以下curl http://prontosoccorso.usl4.toscana.it/attesa/home.asp,您会注意到这些值都为零......)
使用浏览器控制台分析我找不到获得真实值的请求.....有什么帮助/建议吗?
提前谢谢你.. .
【问题讨论】:
标签: php asp.net parsing curl xpath