Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我的xpath查询没有返回任何结果_Php_Domxpath - Fatal编程技术网

Php 我的xpath查询没有返回任何结果

Php 我的xpath查询没有返回任何结果,php,domxpath,Php,Domxpath,我正试图从Yahoo中获取一些数据,但是当我var_dumpthis时,xpath查询将返回长度0。这是我的一部分抓取代码 error_reporting(0); function curl($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($curl, CUR

我正试图从Yahoo中获取一些数据,但是当我
var_dump
this时,xpath查询将返回长度0。这是我的一部分抓取代码

error_reporting(0);

function curl($url) {
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($curl, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)');
    curl_setopt($curl, CURLOPT_HEADER, true);
    curl_setopt($curl, CURLOPT_AUTOREFERER, false);
    curl_setopt($curl, CURLOPT_FRESH_CONNECT, true);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 200);

    return curl_exec($curl);
}

$page = curl('https://www.yahoo.com');
$dom = new DOMDocument();
$dom->loadHTML($page);
$xpath = new DOMXPath($dom);

$link = $xpath->query('//li[@style="background-color:#fafaff;"]/div/div/div/h3/a');
foreach ($link as $links) {
    $get_title[] = $links->nodeValue;
    $get_link[] = $links->getAttribute('href');
}

此代码没有语法错误,但存在逻辑错误。

您的代码工作正常。问题是Yahoo.com返回的HTML根本不包含任何与选择器匹配的li元素。您可以通过查看$page的内容来了解这一点。

我检查了每件事。但最后我找到了另一个解决办法。此代码不起作用。所以它只是废品。谢谢从雅虎截取数据的确切方法非常简单。使用Ajax,您可以轻松地删除数据。首先加载yahoo页面,然后在ajax的帮助下删除任何内容。
感谢所有回答我问题的人

删除0中的错误报告,输出在哪里?你输出什么而看不到?你没有任何回声或指纹,你怎么知道它不起作用?偷广告,哪里有第一个,它又不起作用。。我删除错误报告0Dagon您有解决方案吗?请告诉我??我建议您阅读。为了更好地帮助您,我们需要知道您希望您的代码做什么,并且您需要为我们提供尽可能小的代码部分,这些代码部分不能按应有的方式工作。简单地在SO上转储一个大型PHP文件并说“这不起作用,告诉我为什么”是不可能得到答案的。谢谢你的回答。这个错误的解决方案是什么?你认为呢?那现在我该怎么办?