gpt4 book ai didi

php - 如何获取 xPath nodeValue 美元金额

转载 作者:行者123 更新时间:2023-12-03 17:20:28 27 4
gpt4 key购买 nike

我正在尝试从 <span> 开始具有文本的元素 成交时的值(value)

然后得到它的父 <div>并获得以下 sibling ,即 <div>从那<div>获取 child 的文字<span> .

据我所知,代码是正确的,应该回显 $1,034.29。

它改为 0.00 美元。

我在这里想念什么?

php代码:

$a = new DOMXPath($doc);
$dep_val_txt = $a->query("//span[contains(text(), 'Value when transacted')]");
$dep_val_nxt_elem = $a->query("parent::div", $dep_val_txt[0]);
$dep_val_elem = $a->query("following-sibling::*[1]", $dep_val_nxt_elem[0]);
$dep_val = $dep_val_elem->item(0)->childNodes->item(0)->nodeValue;

echo $dep_val;

html代码:
<div class="sc-8sty72-0 cyLejs">
<span class="sc-1ryi78w-0 bFGdFC sc-16b9dsl-1 iIOvXh sc-1n72lkw-0 bKaZjn" opacity="1">Value when transacted</span>
</div>
<div class="sc-8sty72-0 cyLejs">
<span class="sc-1ryi78w-0 bFGdFC sc-16b9dsl-1 iIOvXh u3ufsr-0 gXDEBk" opacity="1">$1,034.29</span>
</div>

最佳答案

万一其他人将来偶然发现这个问题,我将在评论中总结通过与 OP 对话得出的解决方案:

这里的问题不在于 DOM 选择器,正如他的输出是 0.00 美元这一事实所观察到的那样,即使他没有将值格式化为显示为货币。这使我相信被抓取的网站实际上是使用占位符值,这些占位符值在客户端使用 Javascript 进行更新。选择器无法解决这个问题的原因是 PHP 接收到的 DOM 将是初始渲染,它不包含我们希望抓取的值。

因此,解决方案是检查被抓取的网站,以确定在将值添加到客户端的 DOM 之前从何处以及如何获取这些值。例如,如果网站使用 API 调用来获取值,则可以简单地使用相同的 API 来获取预期的数据,而无需抓取 HTML DOM。

关于php - 如何获取 xPath nodeValue 美元金额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59312749/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com