繁体   English   中英

PHP - DOMXpath 在应该返回任何节点时不返回任何节点

[英]PHP - DOMXpath does not return any nodes when it should

我从 Selenium 中提取 HTML,然后使用 Xpaths 从 HTML 中提取数据。

这是 Xpath:

/html/body/div[2]/div[1]/div/div/div/div/ul/li/div[1]/h3/a

这是我的代码:

$data = $webdriver->getPageSource();
d($data, $urltemplate);
$doc = new DOMDocument();
                    $doc->loadHTML($data);
$xp = "/html/body/div[2]/div[1]/div/div/div/div/ul/li/div[1]/h3/a";
            $xpatho = new DOMXpath($doc);
 $elementsn =  $xpatho->query($xp);
d(get_class($elementsn),$elementsn->count(),$xp,$name);
// d() is a custom function like var_dump().

我总是得到 $elementsn->count() = 0。

这是$数据:

https://pastebin.com/ahuvkJfN

我正在尝试提取诸如“NAD M10 BLUOS ...”、“NAD M12 DIRECT DIGITAL ...”之类的字符串...

我将 HTML 保存到一个文件中,然后在我的浏览器中打开它。 我附上了我要检索的数据的屏幕截图(以蓝色突出显示): 在此处输入图像描述

基本上,HTML 页面是一个产品列表,我希望提取所有产品名称。 为了确认,我使用了 Chrome 开发者工具,并使用了完整的复制 Xpath function。 对于某些产品名称,我有以下 Xpath:

/html/body/div[2]/div[1]/div/div/div/div/ul/li[1]/div[1]/h3/a
/html/body/div[2]/div[1]/div/div/div/div/ul/li[3]/div[1]/h3/a

我猜想这将概括为:

/html/body/div[2]/div[1]/div/div/div/div/ul/li/div[1]/h3/a

但是,我不断得到一个 count = 0 的 DOMNodeList。为什么会这样,我如何检查错误是什么,如果有的话?

PS:这是原网页: http://lenbrook.com.sg/3-shop-by-brand#/page-4/price-49-8667

尝试更改您的$xp

$xp = '//a[@class="product_link"]/text()'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM