【发布时间】:2017-12-19 19:43:10
【问题描述】:
我正在尝试抓取此网页...
https://www.aslteramo.it/SISWebOnLine/ProntoSoccorso.aspx
.... 使用 PHP 和 XPath 获取红色、黄色、绿色和白色圆圈下的数值。
(注意:如果您尝试浏览该页面,您可能会在该页面中看到不同的值......没关系..,它会发生动态变化......)
我正在尝试使用这个 PHP 代码示例来打印值...
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
$url = 'http://www.aslteramo.it/SISWebOnLine/ProntoSoccorso.aspx';
$xpath_for_parsing = '/html/body/div/form/div[3]/div[2]/div[3]/div/div/div[2]/table/tbody/tr[2]/td[4]/table/tbody/tr[1]/td';
//#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;
?>
请注意,要获取 XPath 元素,您必须在浏览器中禁用 javascript,因为鼠标右键单击被禁用。
我看到页面中有一个POST请求...
....但我不知道如何修改我的代码来执行请求,然后如何提取我的值...
我们将不胜感激。
提前谢谢你
【问题讨论】:
-
这不仅仅是 一个 帖子,它是 帖子 的集合,其 post_data 已加密(并且可能已加密),特别是这样人们可以'不要做你想做的事。
-
您实际上并没有解释问题所在。您无法卷曲页面?还是无法使用 xpath 定位元素?
-
我的目标是使用 xpath 定位元素。如果我尝试使用 cURL(在 GET ... 中)调用该 url,它可以工作,但您无法在该页面中看到元素,因为它们是使用 POST 请求加载的,我不知道如何调用该请求使用卷曲 ...
标签: php xpath web-scraping