从 .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>';
    }    
?>

这应该有效:

  1. 来自第一个元素的值:

    substring-after(//div[@class="datiOspedaleCodici"]/div[1]/text(), ":")
    
  2. 从第二个开始:

    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