使用PHP从HTML动态页面中的span类中提取特定的数据绑定

时间:2019-07-02 09:49:27

标签: php html

我需要从一个网页中提取一些信息,而这是一次询问的结果,(这是一次货运的跟踪结果,所以每次我要询问并从中获取信息的页面都是一次询问的结果)

这里是一个例子:

 https://www.sda.it/wps/portal/Servizi_online/ricerca_spedizioni?locale=it&tracing.letteraVettura=3872809292532

现在我要从此结果页面获取并复制的信息包含在这里:

<div class="col-md-6 col-xs-8">

    <span data-bind="text: descrizioneTracing"

class="delivery-status"></span>

   </div>

但是在html视图中,我看不到需要提取的结果,在这种情况下是:     “ La spedizione e'stata consegnata”

我有一些想法,并尝试使用这种方式,

 $url = file_get_contents('https://www.sda.it/wps/portal/Servizi_online/ricerca_spedizioni?locale=it&tracing.letteraVettura='.$numldv);
$dom = new DomDocument();
$dom->load($url);
$finder = new DomXPath($dom);
$classname="delivery-status";
$nodes = $finder->query("//*[contains(@class, '$classname')]");

我不知道这是否是正确的方向,也不知道如何将$ nodes的结果打印为字符串,

在那之后,我将根据我的需要更具体

 data-bind="text: descrizioneTracing"

但是目前我还不知道该怎么做。

有什么建议或帮助吗?

谢谢。

1 个答案:

答案 0 :(得分:-1)

尝试一下,但是目前,您的网站网址返回了空字符串

<?php

$html = file_get_contents('https://www.sda.it/wps/portal/Servizi_online/ricerca_spedizioni?locale=it&tracing.letteraVettura=3872809292532'); //get the html returned from the following url

$pokemon_doc = new DOMDocument();

libxml_use_internal_errors(TRUE); //disable libxml errors

if(!empty($html)){ //if any html is actually returned

    $pokemon_doc->loadHTML($html);
    libxml_clear_errors(); //remove errors for yucky html

    $pokemon_xpath = new DOMXPath($pokemon_doc);

    //get all the h2's with an id
    $pokemon_row = $pokemon_xpath->query('span[data-bind="text: descrizioneTracing"]');
    echo json_encode($html);die;

    if($pokemon_row->length > 0){
        foreach($pokemon_row as $row){
            echo $row->nodeValue . "<br/>";
        }
    }
}
?>