从 .asp 网页获取 HTML 个元素的 Xpath
Get Xpath for HTML elements from .asp web page
我需要抓取这个 HTML 页面 ...
http://www.asl1.liguria.it/templateProntoSoccorso.asp
.. 使用 PHP 和 XPath 获取
中的值,如 2
Codice bianco: 2
(注意:如果您尝试浏览该页面,您可能会在该页面中看到不同的值......没关系..,它们会动态变化......)
我无法像往常一样使用 Mozilla Firebug 获取这些值的 XPath:有什么建议吗?
提前致谢!
更新
<?php
ini_set('display_errors', 1);
$url = 'http://www.asl1.liguria.it/templateProntoSoccorso.asp';
$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);
$Number = $xpath->query('/html/body/table/tbody/tr/td[2]/table[2]/tbody/tr/td[3]/table/tbody/tr[2]/td[1]/table/tbody/tr/td/div[1]/div[3]/div[2]');
foreach( $Number as $node )
{
echo "Number: " .$node->nodeValue;
echo '<br>';
echo '<br>';
}
?>
这应该有效:
来自第一个元素的值:
substring-after(//div[@class="datiOspedaleCodici"]/div[1]/text(), ":")
从第二个开始:
substring-after(//div[@class="datiOspedaleCodici"]/div[2]/text(), ":")
...等等
只需增加 /div[x]
中的索引即可获得下一个值
我已经解决了...这是正确的代码
<?php
ini_set('display_errors', 1);
$url = 'http://www.asl1.liguria.it/templateProntoSoccorso.asp';
$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);
$Number = $xpath->query('(//div[@class="datiOspedaleCodici"]/div[1]/text())[1]');
foreach( $Number as $node )
{
echo "Number: " .$node->nodeValue;
echo '<br>';
echo '<br>';
}
?>
打印....
Codice bianco: 2
我需要抓取这个 HTML 页面 ...
http://www.asl1.liguria.it/templateProntoSoccorso.asp
.. 使用 PHP 和 XPath 获取
中的值,如 2Codice bianco: 2
(注意:如果您尝试浏览该页面,您可能会在该页面中看到不同的值......没关系..,它们会动态变化......)
我无法像往常一样使用 Mozilla Firebug 获取这些值的 XPath:有什么建议吗?
提前致谢!
更新
<?php
ini_set('display_errors', 1);
$url = 'http://www.asl1.liguria.it/templateProntoSoccorso.asp';
$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);
$Number = $xpath->query('/html/body/table/tbody/tr/td[2]/table[2]/tbody/tr/td[3]/table/tbody/tr[2]/td[1]/table/tbody/tr/td/div[1]/div[3]/div[2]');
foreach( $Number as $node )
{
echo "Number: " .$node->nodeValue;
echo '<br>';
echo '<br>';
}
?>
这应该有效:
来自第一个元素的值:
substring-after(//div[@class="datiOspedaleCodici"]/div[1]/text(), ":")
从第二个开始:
substring-after(//div[@class="datiOspedaleCodici"]/div[2]/text(), ":")
...等等
只需增加 /div[x]
中的索引即可获得下一个值
我已经解决了...这是正确的代码
<?php
ini_set('display_errors', 1);
$url = 'http://www.asl1.liguria.it/templateProntoSoccorso.asp';
$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);
$Number = $xpath->query('(//div[@class="datiOspedaleCodici"]/div[1]/text())[1]');
foreach( $Number as $node )
{
echo "Number: " .$node->nodeValue;
echo '<br>';
echo '<br>';
}
?>
打印....
Codice bianco: 2