我需要从一个网页中提取一些信息,而这是一次询问的结果,(这是一次货运的跟踪结果,所以每次我要询问并从中获取信息的页面都是一次询问的结果)
这里是一个例子:
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"
但是目前我还不知道该怎么做。
有什么建议或帮助吗?
谢谢。
答案 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/>";
}
}
}
?>