【发布时间】:2017-02-23 21:41:44
【问题描述】:
我需要解析此网页https://www.galliera.it/118 以获取彩色条下的数字。
这是我的代码(不起作用!!)...
<?php
ini_set('display_errors', 1);
$url = 'https://www.galliera.it/118';
print "The url ... ".$url;
echo '<br>';
echo '<br>';
//#Set CURL parameters ...
$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);
//print "Data ... ".$data;
//echo '<br>';
//echo '<br>';
$dom = new DOMDocument();
@$dom->loadHTML($data);
$xpath = new DOMXPath($dom);
// This is the xpath for a number under a bar ....
// /html/body/div[2]/div[1]/div/div/ul/li[6]/span
// How may I get it?
// The following code doesn't work, it's only to show my goals ..
$greenWaitingNumber = $xpath->query('/html/body/div[2]/div[1]/div/div/ul/li[6]/span');
$theText = (string).$greenWaitingNumber;
print "Data ... ".$theText;
echo '<br>';
echo '<br>';
?>
有什么建议/例子/替代方案吗?
【问题讨论】:
-
“那行不通”你能说得更具体点吗?
(string).$greenWaitingNumber也是错误的语法,你不能像这样回显DOMElement(SimpleXMLElement可以在使用简单 XML 时) -
你是对的......对不起。白页和 Web 控制台显示“错误 500”。我认为问题在于 ... $theText = (string).$greenWaitingNumber; .... line nut 我不太确定 $xpath->query 是否正确(请注意,我使用 borwser 中的“Inspect element”交互功能获得了 xpath ...
-
由于索引符号,您的 x-path 适用于特定值,但要获得所有这些值,您需要在开始时使用更通用的东西。
/html/body/div/div/div/div/ul/li[6]/span -
好的,谢谢 .. 所以 ... $greenWaitingNumber = $xpath->query('/html/body/div[2]/div[1]/div/div/ul/li[ 6]/跨度');我想是正确的......在这种情况下我如何打印 $greenWaitingNumber 值?
-
$greenWaitingNumber = $xpath->query('/html/body/div[2]/div[1]/div/div/ul/li[6]/span'); $theText = $greenWaitingNumber[0]->nodeValue;会给你“2”
标签: php parsing curl xpath web-scraping