PHP webscraper,没有输出


PHP webscraper, no output

我正在为一个丹麦葡萄酒网站制作一个webscraper。

但我在从中获取结果时遇到了一些问题。我认为问题出在Xpath部分,因为我从调试中可以看出它省略了一些字符串,但我不确定。

$title = $ScrapedPageXpath->query('*<h3>');

也可能是我的查询是错误的。

我不是一个熟练的程序员,这是我尝试做的第一件事,所以请在回复中记住这一点。

以下是我的代码:

<?php
function curlGet($url)
{
    $chandle = curl_init();
    curl_setopt($chandle, CURLOPT_URL, $url);
    curl_setopt($chandle, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($chandle, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($chandle, CURLOPT_FOLLOWLOCATION, 5);
    $curlResults = curl_exec($chandle);
    curl_close($chandle);
    return $curlResults;
}
$Winelist = array();
function returnXPathObject($item)
{
    $xmlPageDom = new DomDocument();
    @$xmlPageDom->loadHTML($item);
    $xmlPageXPath = new DOMXPath($xmlPageDom);
    return $xmlPageXPath;
}
$ScrapedPage = curlGet('http://www.vinhit.dk/shop/');
$ScrapedPageXpath = returnXPathObject($ScrapedPage);
$title = $ScrapedPageXpath->query('*<h3>');
if ($title->length > 0) {
    $Winelist['title'] = $title->item(0)->nodeValue;
}
print_r($Winelist);

您的查询不是有效的XPath表达式。要获取所有<h3>节点,查询应该是:

//h3

有关XPath:的进一步参考

  • W3School:Xpath教程
  • W3C XPath 1.0参考文档