代码之家  ›  专栏  ›  技术社区  ›  Cesare

从中获取HTML元素的Xpath。asp网页

  •  0
  • Cesare  · 技术社区  · 7 年前

    我需要刮这个HTML页面。。。

    http://www.asl1.liguria.it/templateProntoSoccorso.asp

    enter image description here

    科迪斯·比安科: 2.

    (注意:如果您尝试浏览该页面,您可能会在该页面中看到不同的值……这无关紧要……,它们会自动更改……)

    提前谢谢!

    更新

    <?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>';
        }    
    ?>
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   Andersson    7 年前

    这应该有效:

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

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

      substring-after(//div[@class="datiOspedaleCodici"]/div[2]/text(), ":")
      

    只需增加索引 /div[x] 获取下一个值

        2
  •  0
  •   Cesare    7 年前

    我已经解决了。。。给你正确的密码

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