Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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表达式在Chrome'中工作;s的开发人员工具功能,不在我的代码中_Php_Google Chrome_Xpath - Fatal编程技术网

Php XPath表达式在Chrome'中工作;s的开发人员工具功能,不在我的代码中

Php XPath表达式在Chrome'中工作;s的开发人员工具功能,不在我的代码中,php,google-chrome,xpath,Php,Google Chrome,Xpath,我最近开始探索创建网络爬虫。我选择使用PHP没有什么特别的原因。在DOMXpath中的DOMDocument中获得了我的turducken的一个cURL实例。我很高兴地发现使用XPath非常简单 不幸的是,尽管当我在Chrome的开发者工具功能中使用它时,它的记录完美无瑕,但它并不总是在我的代码中返回结果。同样的表达式在前一种环境中有效,而在后一种环境中无效 举个具体的例子,我无法在YouTube页面上的视频标题下找到我的爪子 我的问题是:为什么XPath表达式会在Chrome的开发者工具功能中

我最近开始探索创建网络爬虫。我选择使用PHP没有什么特别的原因。在DOMXpath中的DOMDocument中获得了我的turducken的一个cURL实例。我很高兴地发现使用XPath非常简单

不幸的是,尽管当我在Chrome的开发者工具功能中使用它时,它的记录完美无瑕,但它并不总是在我的代码中返回结果。同样的表达式在前一种环境中有效,而在后一种环境中无效

举个具体的例子,我无法在YouTube页面上的视频标题下找到我的爪子

我的问题是:为什么XPath表达式会在Chrome的开发者工具功能中返回一个结果,而在我的代码中只得到一个零?以下是我的资料和我尝试过的几个表达方式:

<?php

  $ch = curl_init("https://www.youtube.com/watch?v=SIPGkrlM3R8");
  curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
  $curl = curl_exec($ch);

  $dom = new DOMDocument();
  @$dom->loadHTML($curl);

  $xpath = new DOMXpath($dom);


  $results = $xpath->query("//span[@id='eow-title']");
  //$results = $xpath->query("/html/body/div[2]/div[3]/div/div[5]/div/div[1]/div/div[1]/div[2]/div[1]/h1/span");

  foreach ($results as $result) {
    print_r($result->nodeValue . "<br>");
  }
?>

您已经走上了正确的轨道(无论如何,您都正确地瞄准了元素)。用
(字符串)
键入:


首先,谢谢!虽然它告诉我我不能得到非对象的节点值。我去掉了“->nodeValue”并做了var_dump()的事情,它说字符串没有长度。也许是鬼魂。:)@萨凡纳我添加了一个完整的代码和一个演示检查的修订啊,太棒了!非常感谢你帮我解决这个问题。
$contents = file_get_contents("https://www.youtube.com/watch?v=SIPGkrlM3R8");
$dom = new DOMDocument();
@$dom->loadHTML($contents);
$xpath = new DOMXpath($dom);
$results = trim((string) $xpath->query("//span[@id='eow-title']")->item(0)->nodeValue);
echo $results; // Scraping Websites with PHP using DOMXpath and DOMDocument Part 2: Building an XPath Class